存储用于 'in' 语句的 smallint 值集

Storing set of smallint values for use in 'in' statement

我想为一个变量分配一些数字,这样我就可以在 IN 语句中使用它,如下所示:

declare @var smallint
set @var = 2,3,49,53,34
select something from somewhere WHERE number in @var

但是,这种类型的查询会导致语法错误。我尝试使用几种不同的数据类型(varchar 等),但它也不喜欢,而是给我数据类型转换错误。

我可以创建数组或类似的东西吗?我想使用 IN 的列是 smallint 类型,我使用的是 SQL 2005,如果有帮助的话。

SQL 2008 年或以上:

declare @variables table (number smallint)

insert into @variables
values (0),
(1),
(2)

select something from somewhere where number in (select number from @variables)

对于 SQL 2005 年:

declare @variables table (number smallint) 
insert into @variables (number) 
SELECT 2 
UNION ALL 
SELECT 3 
UNION ALL 
SELECT 49 
UNION ALL 
SELECT 53 
UNION ALL 
SELECT 34 

select * from @variables