SQL Where子句通过列表的列
问题描述:
我有一些表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个元素....这个查询如何完成?
答
你想要的IN
条款:
SELECT *
FROM Documents
WHERE Type_ID IN (myValue1, myValue2, myValue3)
作为一个侧面说明,如果你是新来的这一条款你不能做类似:
@myVar = '1,2,3'
select * FROM Documents where Type_ID in (@myVar)
有什么东西解决方案喜欢这个。但我指出,因为当人们对IN子句不熟悉时,似乎会出现这种情况。
+1有礼! – 2012-03-26 20:32:44