声明并设置一个具有多个可能值的变量
Declare and set a variable with more than one possible value
是否可以将一个变量设置为多个值?
在下面的示例中,我想设置 @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
任何关于这是否可行或类似的建议都很好。
我相信它可以帮助进行更动态的查询
像这里一样使用 table 变量
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');
--仅来自您的 table
的值
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);
是否可以将一个变量设置为多个值?
在下面的示例中,我想设置 @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
任何关于这是否可行或类似的建议都很好。
我相信它可以帮助进行更动态的查询
像这里一样使用 table 变量
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');
--仅来自您的 table
的值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);