SQLにおけるwhileループの使用方法


  1. 基本的なwhileループの構文:
DECLARE @counter INT = 1;
WHILE @counter <= 10
BEGIN
  -- ループ内で実行するコードを記述
  -- ループ内の処理が完了したら、カウンターをインクリメント
  SET @counter = @counter + 1;
END;

上記の例では、@counterという変数を使用して、ループのカウンターを初期化し、ループ内のコードが実行される間、カウンターをインクリメントしています。この例では、カウンターが1から10までの範囲でループします。

  1. テーブルのレコードを処理するwhileループの例:
DECLARE @id INT;
DECLARE @name VARCHAR(100);
DECLARE @tempTable TABLE (
  ID INT,
  Name VARCHAR(100)
);
INSERT INTO @tempTable (ID, Name)
VALUES (1, 'John'), (2, 'Jane'), (3, 'Alice');
DECLARE @rowCount INT = (SELECT COUNT(*) FROM @tempTable);
DECLARE @currentRow INT = 1;
WHILE @currentRow <= @rowCount
BEGIN
  SELECT @id = ID, @name = Name
  FROM @tempTable
  WHERE ID = @currentRow;
  -- レコードの処理を行うコードを記述
  SET @currentRow = @currentRow + 1;
END;

上記の例では、@tempTableという一時テーブルを作成し、その中のレコードをwhileループで処理しています。ループ内では、@id@nameという変数に現在のレコードの値を代入し、その後の処理で使用します。