Sql server SQL Where子句将列表传递到列

Sql server SQL Where子句将列表传递到列,sql-server,sql-server-2008,sql-server-2008-r2,Sql Server,Sql Server 2008,Sql Server 2008 R2,我有一些表文档,它们有一个列TYPE\u ID和一个名为TYPE 现在我想做一个查询,在我的文档中过滤所有具有TYPE\u ID列表的文档,这些列表可以是单个元素,也可以是一类元素 通常的查询是: Select * From DOCUMENTS Where TYPE_ID = myValue 但是当它可以是一个已知元素的列表时,wuery看起来像 Select * From DOCUMENTS Where TYPE_ID = myValue1 or TYPE_ID = myValue2 or

我有一些表
文档
,它们有一个列
TYPE\u ID
和一个名为
TYPE
现在我想做一个查询,在我的
文档
中过滤所有具有
TYPE\u 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个元素。。。。如何执行此查询?

您希望在子句中使用

SELECT *
FROM  Documents 
WHERE Type_ID IN (myValue1, myValue2, myValue3)
作为补充说明,如果您对本条款不熟悉,则不能执行以下操作:

@myVar = '1,2,3'
select * FROM Documents where Type_ID in (@myVar)
像这样的事情有解决办法。但我指出这一点是因为当人们对IN条款不熟悉时,它似乎会出现