我的SQL代码非常简单。我试图从这样的数据库中选择一些数据:
SELECT * FROM DBTable WHERE id IN (1,2,5,7,10)
我想知道如何在选择之前声明列表(在变量,列表,数组等),而在选择内部仅使用变量名,如下所示:
VAR myList = "(1,2,5,7,10)" SELECT * FROM DBTable WHERE id IN myList
您可以像这样将变量声明为临时表:
declare @myList table (Id int)
这意味着您可以使用该insert语句为它填充值:
insert
insert into @myList values (1), (2), (5), (7), (10)
然后,您的select语句可以使用以下任一in语句:
select
in
select * from DBTable where id in (select Id from @myList)
或者您可以像这样加入临时表:
select * from DBTable d join @myList t on t.Id = d.Id
而且,如果您做很多这样的事情,那么您可以考虑定义用户定义的表类型,这样就可以像下面这样声明变量:
declare @myList dbo.MyTableType