2010-01-15 89 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语法查询。

相关问题