我想为变量分配一些数字,以便我可以在IN
语句中使用它,如下所示:
declare @var smallint
set @var = 2,3,49,53,34
select something from somewhere WHERE number in @var
但是,此类查询会导致语法错误。我尝试使用一些不同的数据类型(varchar等),但它也不喜欢它,而是给了我数据类型转换错误。
我可以创建一个类似的数组吗?我希望使用IN
的列是smallint
类型,我使用SQL 2005,如果有帮助的话。
答案 0 :(得分:0)
对于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