Sql 插入前查找行集,重复列表

Sql 插入前查找行集,重复列表,sql,tsql,Sql,Tsql,我有一个表(它是一个包含4个整数的结构列表,第一个id是列表id) 现在我需要在这个表中插入第四个列表 idA | idB | idC 2 | null | 1 4 | null | 1 null | 1 | 1 但是,它已经存在(列表id=1) alse存在(idL=2) 不存在 如何在将重复项插入表之前找到它似乎只是从中插入的问题(选择“不在中”) 试试这个例子: 免责声明:在您提供的示例数据中,第2行和

我有一个表(它是一个包含4个整数的结构列表,第一个id是列表id)

现在我需要在这个表中插入第四个列表

idA    | idB       | idC
2      |    null   |  1
4      |    null   |  1
null   |      1    |  1
但是,它已经存在(列表id=1)

alse存在(idL=2)

不存在


如何在将重复项插入表之前找到它

似乎只是从中插入的问题(选择“不在中”)

试试这个例子:

免责声明:在您提供的示例数据中,第2行和第4行获得了相同的idA、idB和idC集。
如果这些列不能形成唯一的,并且您已经在copy table中获得了该元组,并且您需要在copy table中为原始表中的每一行指定一行,那么这将非常困难,因为对于copy中的此类行,无法判断原始表中的行是否相关。

如果值在table temp中,并且您知道列表id

您可以使用“除外”

例如:


您是否在文件中有这些列表,或者您正试图使用SQL查询插入它们?您可以删除所有行,然后插入新集,如果当前集始终包含旧行,并且可能有一些新行SQL查询,则它是java arraylist
idA    | idB       | idC
2      |    null   |  1
4      |    null   |  1
null   |      1    |  1
idA    | idB       | idC
2      |    null   |  1
4      |    null   |  1
idA    | idB       | idC
2      |    null   |  1
4      |    null   |  1
null   |      7    |  1
insert into list (idL, idA, idB, idC)
select @list_id, t.idA, t.idB, t.idC
from
(
  select idA, idB, idC
  from @new_values
  except
  select idA, idB, idC
  from list
) t