我想在WHILE循环中循环一个字符数组(只有两个值:'C'和'P')并在SQL语句中使用这个变量。
PSEUDO CODE:
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
为了澄清,真正的sql语句是这样的:
INSERT INTO MyTable
SELECT A, B, @Var FROM AnotherTable WHERE ExportStatus = 'F'
答案 0 :(得分:2)
只需使用:
INSERT INTO MyTable
SELECT * FROM AnotherTable WHERE ExportStatus
IN (SELECT 'C' UNION ALL SELECT 'P')
答案 1 :(得分:0)
只需将其插入表格即可。
在SQL中设置操作执行得更好 并且可以将数组放入表中,并且可以在表上执行操作。