可能重复:
Parameterizing a SQL IN clause?
SQL Server SP - Pass parameter for “IN” array list?
我需要在两个不同的表上搜索偶然的整数集:
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)
是否有可以传递给IN的SQL列表类型,以便我不重复自己? E.G。
DECLARE @stuff UNOBTAINIUM(1,2,3,5,7,1021,10041411)
-- ...
WHERE col_1 IN (@stuff)
-- ...
WHERE col_one IN (@stuff)
想到创建一个临时表,但这看起来很残酷。
答案 0 :(得分:2)
是的,您可以使用table variable。它就像一个临时表,但是本地范围。
答案 1 :(得分:2)
这已被问过很多次了。 SQL Server SP - Pass parameter for “IN” array list?
另外看看
答案 2 :(得分:1)
没有列表类型。临时表应该没问题,或者你可以使用表变量。
答案 3 :(得分:1)
使用MS-SQL时,我倾向于使用XML文档,可以很容易地从非SQL客户端传递(我认为不像临时表),并且可以通过MS-SQL的T-SQL语法查询。