我有三個整數7,3和2需要創建一個每個循環不斷變化的變量在T-SQL
我想寫一個循環我的變量每次換水然後執行一個SQL請求腳本對每個更改變量使用該已更改的變量。我不知道如何做到這一點。
我知道如何來聲明一個變量
declare @myvariable int;
set @myvariable = 7
select *
from mytable
where field1 = @myvariable
請幫
我有三個整數7,3和2需要創建一個每個循環不斷變化的變量在T-SQL
我想寫一個循環我的變量每次換水然後執行一個SQL請求腳本對每個更改變量使用該已更改的變量。我不知道如何做到這一點。
我知道如何來聲明一個變量
declare @myvariable int;
set @myvariable = 7
select *
from mytable
where field1 = @myvariable
請幫
您可以使用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中使用加入
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中的發言全體@啓動< = @end當@end是0我將它改爲3,效果很好。謝謝你的幫助。
DECLARE @TableVariable TABLE( ID INT標識(1,1) ,可變INT ) DECLARE @End INT = 3 --Original例如具有0 ,@開始INT = 1 ,@ MYVARIABLE INT
INSERT INTO @TableVariable VALUES(7) ,(3) ,(2)
WHILE @啓動< = @End BEGIN SELECT 頂部100 * FROM provider_status PS WHERE PS.provider_status_type_id IN(
SELECT variable
FROM @TableVariable
WHERE Id = @Start
)
SET @Start = @Start + 1
我仍然不知道@myvariable如何被設置和使用。
循環 – Ashu