我有一些表DOCUMENTS
有一个列TYPE_ID
和一个名为TYPES
的表
现在我想创建一个查询,在我的DOCUMENTS
上过滤所有包含TYPE_ID
列表的文档,该列表可以是单个元素或元素种类
正常查询是:
Select * From DOCUMENTS Where TYPE_ID = myValue
但是当它可以是已知元素的列表时,wuery看起来像
Select * From DOCUMENTS Where TYPE_ID = myValue1 or TYPE_ID = myValue2 or TYPE_ID = myValue3
但是如果你有n个元素......这个查询怎么办呢?
答案 0 :(得分:9)
你想要IN
条款:
SELECT *
FROM Documents
WHERE Type_ID IN (myValue1, myValue2, myValue3)
作为旁注,如果您对本条款不熟悉,则无法执行之类的内容:
@myVar = '1,2,3'
select * FROM Documents where Type_ID in (@myVar)
有类似这样的解决方案。但我指出它是因为当人们不熟悉IN条款时似乎会出现这种情况。