我有三个整数7,3和2.
我想编写一个脚本,每次循环更改我的变量,然后使用每个更改变量的变更变量执行SQL请求。我不知道该怎么做。
我知道如何申报变量
declare @myvariable int;
set @myvariable = 7
select *
from mytable
where field1 = @myvariable
请帮忙
答案 0 :(得分:0)
您可以使用tablevariable。
方法-1使用While循环
DECLARE @TableVariable TABLE (
Id INT identity(1, 1)
,Variable INT
)
DECLARE @End INT = 0
,@start INT = 1
,@myvariable INT
INSERT INTO @TableVariable
VALUES (7)
,(3)
,(2)
WHILE @Start <= @End
BEGIN
SELECT *
FROM mytable
WHERE field1 IN (
SELECT variable
FROM @TableVariable
WHERE Id = @Start
)
SET @Start = @Start + 1
END
方法-2使用Join
DECLARE @TableVariable TABLE (
Id INT identity(1, 1)
,Variable INT
)
INSERT INTO @TableVariable
VALUES (7)
,(3)
,(2)
SELECT *
FROM mytable m
INNER JOIN @TableVariable t ON m.field1 = t.Variable
答案 1 :(得分:0)
好的方法1的问题是语句Whole @ start&lt; = @end当@end为0.我将它改为3并且效果很好。谢谢你的帮助。
DECLARE @TableVariable TABLE( Id INT身份(1,1) ,变量INT ) DECLARE @End INT = 3 - 原始示例为0 ,@ start INT = 1 ,@ myvariable INT
INSERT INTO @TableVariable 价值观(7) ,(3) ,(2)
WHILE @Start&lt; = @End 开始 选择前100名* FROM provider_status PS 在哪里PS.provider_status_type_id IN(
SELECT variable
FROM @TableVariable
WHERE Id = @Start
)
SET @Start = @Start + 1
我仍然不知道如何设置和使用@myvariable。