2

WHILE ループ ('C' と 'P' の 2 つの値のみ) で char の配列をループし、この変数を 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-statement は次のようなものです。

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 に答える