WHILEループ( 'C' & 'P'という2つの値のみ)でcharの配列をループし、この変数をSQL文で使用したい。T-SQL:whileループのような配列を使用する
擬似コード:
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'
本当にあなたがしようとしている '本当のsql'に依存します。一般的に、ループを避けることができるはずですが、必ずしもそうではありません。これに本当にループが必要な場合は、あなたが持っているものは大丈夫です。あるいは、 'FAST_FORWARD READONLY Cursor'を考えて、それを使って入力データをループすることもできます。 – MatBailie