是否可以将变量设置为具有多个值?
在下面的例子中,我想设置@variable
并使用商店号码1,4,7和12
然后使用WHERE
语句中的变量。
下面仅仅是一个例子,看看这是否可行
Declare @Variable INT;
Set @Variable = IN(1,4,7,12)
Select *
From dbo.EUactivestores eu
Where eu.[Store No] = @Variable
关于这是否可能的任何建议,或类似的东西都会很棒。
我相信这有助于制作更具动态性的查询
答案 0 :(得分:7)
使用像这里的表变量
DECLARE @tbl TABLE(v INT);
INSERT INTO @tbl VALUES(1),(4),(7),(12);
您可以在WHERE
子句中使用此功能,如下所示:
WHERE eu.[Store No] IN(SELECT v FROM @tbl);
DECLARE @tbl TABLE(v INT);
INSERT INTO @tbl VALUES(1),(4),(7),(12);
DECLARE @mockup TABLE(ID INT IDENTITY,SomeValue VARCHAR(100));
INSERT INTO @mockup VALUES('val 1'),('val 2'),('val 3'),('val 4'),('val 5')
,('val 6'),('val 7'),('val 8'),('val 9'),('val 10')
,('val 11'),('val 12'),('val 13'),('val 14'),('val 15');
- 仅包含表中的值
SELECT * FROM @mockup AS m
WHERE m.ID IN(SELECT v FROM @tbl);
- 或否定上述
SELECT * FROM @mockup AS m
WHERE m.ID NOT IN(SELECT v FROM @tbl);