如何检查表是否存在一组数据

时间:2012-02-23 14:47:56

标签: sql-server

我想检查表格中特定列中是否存在一组字符串 比如说

'ABC', 'DEF', 'GHI', ...

我想知道现有的字符串和不存在的字符串。

2 个答案:

答案 0 :(得分:1)

WHERE Field IN ('ABC,'DEF', 'ETC')

答案 1 :(得分:0)

如果您将候选字符串放入参考表refTable,并且您搜索的数据位于名为myTable的表格中,并且您要搜索的列名称为{{1}那么我想你想要这样的东西:

stringvalue

这里的关键是使用COUNT(t.stringvalue)而不是COUNT(*),因为MSSQL的COUNT()只包含非NULL值,而LEFT JOIN为t中没有匹配的所有列产生NULL。

根据refTable和myTable的大小,这可能会很慢,因此您可能还想在SELECT r.stringvalue, COUNT(t.stringvalue) numPresent FROM refTable r LEFT JOIN myTable t ON t.stringvalue = r.stringvalue GROUP BY r.stringvalue 上向两个表添加索引。