MsSQL   发布时间:2022-05-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了sql – 在IN()列表中找不到的那些大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
道歉,如果有一个答案已经,我搜索,可能无法想到正确的关键词来找到它.

我有一张超过1000张桌子(如客户).

我有一个查询需要一个已知的客户名单的详细信息(例如CustomerID – 1,79,14,100,123)

IN()函数是我想要用于查询的函数.

我知道找到与名单匹配的客户,我会写:

SELECT * FROM客户
客户身份证号码(1,123)

要找到不在列表中的那些,我会写

SELECT * FROM客户
客户不在(1,123)

如何找到未返回或未从列表中找到匹配项的客户列表.

假设客户表只有(1,100).那么这意味着14和123将不匹配.如何找到没有找到匹配的值.

我在我的例子中简化了.我的项目列表有超过300个ID,所以使用WHERE条件与长列表的OR将是麻烦/笨拙.我想到结合自我LEFT JOIN和识别NULL配对值,这将是14和123

有更优雅的做法吗?

@H_450_29@解决方法
您可以使用派生表或临时表来保存CustomerID列表,然后使用EXCEPT找到不匹配的表.

以下使用table value constructor作为派生表(与sql Server 2008兼容)

SELECT CustomerId
FROM   (VALUES(1),(79),(14),(100),(123)) V(CustomerId)
EXCEPT
SELECT CustomerId
FROM   Customers

大佬总结

以上是大佬教程为你收集整理的sql – 在IN()列表中找不到的那些全部内容,希望文章能够帮你解决sql – 在IN()列表中找不到的那些所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:1001479道歉