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

Posted

技术标签:

【中文标题】如何使用 SQL Server 返回不在表中的 id【英文标题】:How to return ids that are not in the table using SQL Server 【发布时间】:2015-12-08 08:33:42 【问题描述】:

我想检查表中是否存在 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】:

你可以使用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 () 或表值参数更改子查询。

【讨论】:

以上是关于如何使用 SQL Server 返回不在表中的 id的主要内容,如果未能解决你的问题,请参考以下文章