2010-01-15 103 views
5

可能重複:
Parameterizing a SQL IN clause?
SQL Server SP - Pass parameter for 「IN」 array list?SQL是否有可以在WHERE ... IN子句中使用的列表類型?

我需要尋找一個偶然的整數集上的兩個不同的表:

SELECT 
    col_1, col_2 
FROM 
    LIKES_NUMBERS 
WHERE 
    col_1 IN (1,2,3,5,7,1021,10041411) 

SELECT 
    col_one, col_two 
FROM 
    LIKES_NAMES 
WHERE 
    col_one IN (1,2,3,5,7,1021,10041411) 

是否有一個SQL表類型可以傳遞給IN,以便我不重複自己?例如。

DECLARE @stuff UNOBTAINIUM(1,2,3,5,7,1021,10041411) 
-- ... 
WHERE col_1 IN (@stuff) 
-- ... 
WHERE col_one IN (@stuff) 

創建一個臨時表讓人想起,但這似乎是殘酷的。

+0

重複:http://stackoverflow.com/questions/537087/sql-server-sp-pass-parameter-for-in-array-list – 2010-01-16 02:11:09

回答

2

是的,你可以使用table variable這個。它就像一張臨時表,但在本地範圍內。

1

沒有列表類型。臨時表應該沒問題,或者你可以使用表變量。

1

當使用MS-SQL,我傾向於使用用於此目的,可以從非很容易地通過XML文檔-SQL客戶端(我認爲不像臨時表),並且被MS-SQL的T-SQL語法查詢。

相關問題