存储用于 '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
我想为一个变量分配一些数字,这样我就可以在 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