我有SQL Server 2008 R2,我正在尝试使用客户端应用程序中将返回动态值的参数运行查询。然后应该为每个参数独立运行...
即
PARAM VALUE contains 1,2,3,4,5
Loop for each <PARAM VALUE>
Select * from Table where ID = <PARAM VALUE>
Next
我如何循环每个逗号分隔值并独立运行查询?
结束所有目标是我将每个传递插入一个新的临时表作为结果。
答案 0 :(得分:0)
您可以使用表变量来遍历值:
DECLARE @Values TABLE (Index INT)
INSERT @Values VALUES (1, 2, 3, 4, 5)
DECLARE @Index INT
WHILE EXISTS (SELECT * FROM @Values) BEGIN
SET @Index = (SELECT TOP 1 Index FROM @Values)
SELECT * FROM Table WHERE ID = @Index
DELETE @Values WHERE Index = @Index
END
如果值列表是序列,则可以使用更典型的循环:
DECLARE @Index INT = 1
WHILE @Index <= 5 BEGIN
SELECT * FROM Table WHERE ID = @Index
SET @Index = @Index + 1
END