2

我想在 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 < 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'
4

2 回答 2

2

只需使用:

INSERT INTO MyTable
    SELECT * FROM AnotherTable WHERE ExportStatus 
        IN (SELECT 'C' UNION ALL SELECT 'P')
于 2012-02-04T09:44:20.783 回答
0

只需将其插入表中。

集合操作在 SQL 中表现更好,可以将数组放入表中,可以对表进行操作。

于 2012-02-04T13:41:19.477 回答