-
WHILE文を使用したイテレーション: WHILE文を使用すると、指定した条件が満たされている間、繰り返し処理を行うことができます。以下は、数値を1から10まで表示する例です。
DECLARE @i INT = 1; WHILE @i <= 10 BEGIN PRINT @i; SET @i = @i + 1; END
-
カーソルを使用したイテレーション: カーソルは、クエリ結果セット内の行を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;
-
再帰的な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でイテレーションを行うための一般的な方法の一部です。他にも、一時テーブルやテーブル変数を使用したイテレーションなど、さまざまな方法があります。使用する状況や要件に応じて、最適な方法を選択してください。