T-SQLのイテレーション方法


  1. WHILE文を使用したイテレーション: WHILE文を使用すると、指定した条件が満たされている間、繰り返し処理を行うことができます。以下は、数値を1から10まで表示する例です。

    DECLARE @i INT = 1;
    WHILE @i <= 10
    BEGIN
       PRINT @i;
       SET @i = @i + 1;
    END
  2. カーソルを使用したイテレーション: カーソルは、クエリ結果セット内の行を1つずつ処理するために使用されます。以下は、カーソルを使用してテーブル内のデータを処理する例です。

    DECLARE @name VARCHAR(50);
    DECLARE myCursor CURSOR FOR
    SELECT Name FROM MyTable;
    OPEN myCursor;
    FETCH NEXT FROM myCursor INTO @name;
    WHILE @@FETCH_STATUS = 0
    BEGIN
       -- ここで処理を行う
       PRINT @name;
       FETCH NEXT FROM myCursor INTO @name;
    END
    CLOSE myCursor;
    DEALLOCATE myCursor;
  3. 再帰的なCTEを使用したイテレーション: Common Table Expressions(CTE)を使用して、再帰的なクエリを実行することができます。以下は、数列を生成する再帰的なCTEの例です。

    WITH RecursiveCTE (Number)
    AS
    (
       SELECT 1
       UNION ALL
       SELECT Number + 1 FROM RecursiveCTE WHERE Number < 10
    )
    SELECT Number FROM RecursiveCTE;

これらはT-SQLでイテレーションを行うための一般的な方法の一部です。他にも、一時テーブルやテーブル変数を使用したイテレーションなど、さまざまな方法があります。使用する状況や要件に応じて、最適な方法を選択してください。