T-SQL:使用类似while循环的数组
我想在WHILE循环中循环一个字符数组(只有两个值:“C”和“p”),并在SQL语句中使用这个变量 伪代码:T-SQL:使用类似while循环的数组,sql,arrays,tsql,while-loop,do-while,Sql,Arrays,Tsql,While Loop,Do While,我想在WHILE循环中循环一个字符数组(只有两个值:“C”和“p”),并在SQL语句中使用这个变量 伪代码: WHILE SELECT 'C' UNION SELECT 'P' BEGIN SELECT @Var -- Do real sql-statement here END 我有这个工作代码,但我想知道是否可以写得更好/更容易/更优雅 DECLARE @Var CHAR(1) DECLARE @counter INT SET @counter = 0 WHILE @counter
WHILE SELECT 'C' UNION SELECT 'P'
BEGIN
SELECT @Var -- Do real sql-statement here
END
我有这个工作代码,但我想知道是否可以写得更好/更容易/更优雅
DECLARE @Var CHAR(1)
DECLARE @counter INT
SET @counter = 0
WHILE @counter < 2
BEGIN
SELECT @Var =
CASE @counter
WHEN 0 THEN 'C'
ELSE 'P'
END
SELECT @Var -- Do real sql-statement here
SET @counter = @counter + 1
END
只需使用:
INSERT INTO MyTable
SELECT * FROM AnotherTable WHERE ExportStatus
IN (SELECT 'C' UNION ALL SELECT 'P')
只要把它插入表中就行了 Set操作在SQL中性能更好
数组可以放入表中,并且可以在表上执行操作。这确实取决于您尝试执行的
real sql
。通常,您应该能够避免循环,但并非总是如此。如果这确实需要一个循环,那么您所拥有的就可以了。或者,你可以考虑一个<代码> FASTHORD只读光标,并用它循环输入数据。
INSERT INTO MyTable
SELECT * FROM AnotherTable WHERE ExportStatus
IN (SELECT 'C' UNION ALL SELECT 'P')