2012-03-20 126 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