car*_*ter 2 sql sql-server-2008
有没有更好的方法来实现同样的结果?
我有一个ID列表(不在表中).我需要找到给定表中不存在哪些ID.通过执行以下SQL语句,我已经能够实现我正在寻找的结果:
SELECT InlineID
FROM (SELECT 11111 AS InlineID UNION ALL SELECT 22222 UNION ALL SELECT 33333) AS Ids
LEFT OUTER JOIN MyTable ON Ids.InlineID = MyTable.ID
WHERE MyTable.ID IS NULL;
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但感觉应该有一种更简单的方法来实现相同的结果,即重复的UNION ALL语句看起来很混乱,尤其是当ID列表变大时.另一个限制是我没有能够创建临时表的权限,因此这些类型的解决方案将无法实现.
SELECT InlineID
FROM (VALUES (11111),
(22222),
(33333)) T(InlineID)
EXCEPT
SELECT ID
FROM MyTable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |