2012-03-20 98 views
1

我有一些表DOCUMENTS有一列TYPE_ID和一个名为TYPES 现在我想让它过滤对我DOCUMENTS所有的文件,有TYPE_ID列表的查询表,可以是单个元素或元素进行排序SQL Where子句通过列表的列

正常的查询是:

Select * From DOCUMENTS Where TYPE_ID = myValue 

但是,当它可以是已知元素的列表wuery看起来像

Select * From DOCUMENTS Where TYPE_ID = myValue1 or TYPE_ID = myValue2 or TYPE_ID = myValue3 

但是,如果你有n个元素....这个查询如何完成?

回答

8

你想要的IN条款:

SELECT * 
FROM Documents 
WHERE Type_ID IN (myValue1, myValue2, myValue3) 

作为一个侧面说明,如果你是新来的这一条款你不能做类似:

@myVar = '1,2,3' 
select * FROM Documents where Type_ID in (@myVar) 

有什么东西解决方案喜欢这个。但我指出,因为当人们对IN子句不熟悉时,似乎会出现这种情况。

+0

+1有礼! – 2012-03-26 20:32:44