【发布时间】:2016-06-08 11:08:37
【问题描述】:
任何人都可以帮助我解决一个我不时遇到但往往会长期解决的常见问题吗?我试图找到一种优雅的方法来识别给定大量值的表中不存在的 Id。
我收到了一个 Excel 表,其中包含 4000 多个字符串 id 的列表,我需要确定哪些在 SQL Server 表中不存在。
我的第一个操作是使用 Notepad++ 并将列表转换为类似于 'XX1'、'XX2'、'XX3' 等的 CSV 列表,然后运行 SELECT * FROM [TABLE] WHERE [ID] IN ('XX1 ','XX2','XX3',...)。这显示的记录比 Excel 中显示的少 2 条,所以现在我需要筛选它们以确定哪两条不在数据库中。
感谢您的帮助。
保罗。
【问题讨论】:
-
通常情况下,您将拥有要签入一张表的 ID。然后你可以对带有记录的实际表进行 LEFT JOIN 并查看缺少什么
-
谢谢@juergend - 这是我在表格中没有 ID 的情况 - 这次你在 Excel 中呈现给我(有时通过电子邮件或其他方式,但基本上在db结构,否则会更简单)
-
感谢@LukStorms 是否有任何技巧可以将数据简单地放入临时表中而无需编写太多脚本?一旦它在那里,我对 TSQL 很满意,可以做我需要的事情,但我想知道是否有一种简单的方法可以将列表轻松放入数据库,然后使用。
-
@Paul 我添加了一个额外的答案,尽管 Lasse 的答案非常好。
标签: sql-server tsql