【发布时间】:2020-09-23 02:24:14
【问题描述】:
编辑重新表述问题,以澄清......
我需要找到一种方法来搜索Col2 <> 1 所在的所有记录
Col1 中的值可以用 Col2 中的其他值表示。
结果应仅显示 Col1 中的值是否从未有 value =1 in Col2 作为记录,然后在表中丢失。
Col1 中的 ID 将作为唯一记录在另一个表中找到,因此我可以创建 join 或类似 table1.Col1=table2.Col2 的内容
最后我需要它来INSERTtable1中的INSERT缺少记录,其中Col1ANDCol2=1中没有带有ID的记录。
Table2
Col1|Col2|Col3|
---------------
| 1|....|....|
| 2|....|....|
| 3|....|....|
| 4|....|....|
Table1
|Col1|Col2|Col3|Col4|
-------------------
| 1| 1|....|....|
| 1| 2|....|....|
| 1| 3|....|....|
| 2| 3|....|....|
| 2| 4|....|....|
| 2| 5|....|....|
| 3| 1|....|....|
| 3| 2|....|....|
| 4| 2|....|....|
| 4| 3|....|....|
| 4| 4|....|....|
在上表中,我的搜索应该只显示我,并且需要在Col2 中插入1 的那些ID
Table1
| 2|....|....|....|
| 4|....|....|....|
...并省略,因为它们已经是 Col2=1 的记录
Table1
| 1|....|....|....|
| 3|....|....|....|
... 因为 Col1 有一个匹配值,其中 Col2 中的一个 = 1。 我希望这是有道理的。
我需要一个 SELECT 以及一个 INSERT IF NOT EXIST 的示例
在我可以运行插入之前,我需要确保逻辑工作正常,所以我需要一个 SELECT 语句,那里可以显示缺失记录的 Col1 值。
谢谢
雷夫 B.
MS-SQL Server 2016 和 MSSMS 2019
【问题讨论】:
-
我理解你所说的逻辑,但不清楚你为什么选择你所做的输出集,因为还有其他结果集也可以满足要求。请详细说明。
-
很遗憾,您的评论无助于解释您的问题。
-
@Scratte
Col1=Col1始终为 true 取决于 SQL 方言。在 Oracle 中,这仅在 Col1 不为空时才成立。 -
@Scratte 所以..您只想添加值 (2,1) 和 (4,1) 因为值 2 和 4 的 col1 没有与 col2 匹配的值 1 ? 正确 您只对添加 col2=1 的行感兴趣? 我也需要插入 ID,但是是的,我已经改写了我的问题,希望现在更清楚了……
-
MS-SQL Server 2016 和 MSSMS 2019 - 我已经用 sql-server-2008 标签更新了帖子,因为我无法添加 sql-server-2016 标签
标签: sql sql-server distinct sql-insert not-exists