如何使用SQL Server返回不在表中的ID

时间:2015-12-08 08:33:42

标签: sql-server sql-server-2008

我想检查表中是否存在ID,然后使用SQL Server从where子句返回表中不存在的ID。

这是我的SQL查询,

select <columname> 
from tablename 
where ID in (10, 20, 30, 40, 100, 200)

如果表中存在20和30,则输出应返回10,40,100,200

请帮帮我一个人!

1 个答案:

答案 0 :(得分:0)

您可以使用LEFT JOIN

SELECT sub.ID
FROM (SELECT 10 AS id
      UNION ALL SELECT 20
      UNION ALL SELECT 30
      UNION ALL SELECT 40
      UNION ALL SELECT 100
      UNION ALL SELECT 200) AS sub
LEFT JOIN tablename  t
  ON sub.id = t.id
WHERE t.id IS NULL;

如果需要,您可以使用VALUES ()或表值参数更改子查询。