sql – 在IN()列表中找不到的那些
发布时间:2020-12-12 08:51:51 所属栏目:MsSql教程 来源:网络整理
导读:道歉,如果有一个答案已经,我搜索,可能无法想到正确的关键词来找到它. 我有一张超过1000张桌子(如客户). 我有一个查询需要一个已知的客户名单的详细信息(例如CustomerID – 1,79,14,100,123) IN()函数是我想要用于查询的函数. 我知道找到与名单匹配的客户,我会
道歉,如果有一个答案已经,我搜索,可能无法想到正确的关键词来找到它.
我有一张超过1000张桌子(如客户). 我有一个查询需要一个已知的客户名单的详细信息(例如CustomerID – 1,79,14,100,123) IN()函数是我想要用于查询的函数. 我知道找到与名单匹配的客户,我会写: SELECT * FROM客户 要找到不在列表中的那些,我会写 SELECT * FROM客户 题 如何找到未返回或未从列表中找到匹配项的客户列表. 假设客户表只有(1,100).那么这意味着14和123将不匹配.如何找到没有找到匹配的值. 我在我的例子中简化了.我的项目列表有超过300个ID,所以使用WHERE条件与长列表的OR将是麻烦/笨拙.我想到结合自我LEFT JOIN和识别NULL配对值,这将是14和123 有更优雅的做法吗? 解决方法您可以使用派生表或临时表来保存CustomerId列表,然后使用EXCEPT找到不匹配的表.以下使用table value constructor作为派生表(与SQL Server 2008兼容) SELECT CustomerId FROM (VALUES(1),(79),(14),(100),(123)) V(CustomerId) EXCEPT SELECT CustomerId FROM Customers (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |