找出设置了大输入值的列中是否存在值

时间:2014-08-28 14:18:43

标签: sql sql-server

查找表中特定列单元格是否包含给定值之一的最有效(且简单)方法是什么?

为了给你一些背景知识,我列出了1000个身份证号码。它们可能存在也可能不存在于表“ProcessedFiles”的“FileName”列中,作为文件名的一部分。

基本上,我需要检查这1000个任务中的哪一个已被处理(即它们存在于表中)。

我带来的东西似乎非常无效:

SELECT * FROM ProcessedFiles 
WHERE FileName LIKE '%54332423%'
OR FileName LIKE '%234432%'
OR FileName LIKE '%342342%'
...

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您可以创建临时表并在列中插入所有ID。然后,您可以与ProcessedFiles表交叉连接,并使用类似名称检查名称中的id:

SELECT pf.* 
FROM ProcessedFiles pf,table t
WHERE pf.FileName like '%'+t.Id+'%'

我测试了上述内容,它适用于SQL Server。