jcv*_*gan 1 sql-server sql-server-2008 sql-server-2008-r2
我有一些表DOCUMENTS有一个列TYPE_ID和一个名为TYPES
Now 的表我希望进行一个查询过滤我的DOCUMENTS所有文档,其中包含一个列表TYPE_ID,可以是单个元素或一类元素
正常查询是:
Select * From DOCUMENTS Where TYPE_ID = myValue
Run Code Online (Sandbox Code Playgroud)
但是当它可以是wuery看起来像已知元素的列表时
Select * From DOCUMENTS Where TYPE_ID = myValue1 or TYPE_ID = myValue2 or TYPE_ID = myValue3
Run Code Online (Sandbox Code Playgroud)
但是如果你有n个元素......这个查询怎么办呢?
你想要IN条款:
SELECT *
FROM Documents
WHERE Type_ID IN (myValue1, myValue2, myValue3)
Run Code Online (Sandbox Code Playgroud)
作为旁注,如果您对本条款不熟悉,则不能执行以下操作:
@myVar = '1,2,3'
select * FROM Documents where Type_ID in (@myVar)
Run Code Online (Sandbox Code Playgroud)
有这样的解决方案.但我指出它是因为当人们不熟悉IN条款时似乎会出现这种情况.