SQL Server
 Computer >> コンピューター >  >> プログラミング >> SQL Server

【SQL Server入門】WHILEループの使い方|構文・フローチャート・実行例を徹底解説

WHILEループ(WHILE LOOP)は、指定した条件がTRUEを返す限り、コードを繰り返し実行したい場合に使用する制御構文です。この記事では、基本構文と具体的なサンプルコードをもとに、SQL ServerにおけるWHILEループの使い方をわかりやすく解説します。

WHILEループの基本構文

SQL ServerでWHILEループを使用する際は、以下の構文に従います。

WHILE 条件式
BEGIN
    { 条件がTRUEのときに実行される処理 }
END;

ポイント:

  1. 実行回数が事前に確定していない場合に、WHILEループを利用します。
  2. WHILEの条件はループに入る前に評価されるため、最初から条件がFALSEの場合は、ループ内の処理は一度も実行されません。
  3. ループを途中で強制終了したい場合は、BREAK文を使用します。
  4. ループの先頭から処理をやり直したい場合は、CONTINUE文を使用します。

WHILEループの処理フロー

WHILEループでは、まず条件式を評価し、TRUEであればBEGIN〜END内の処理を実行します。処理が完了すると再び条件式の評価に戻り、条件がFALSEになるまでこれを繰り返します。

【SQL Server入門】WHILEループの使い方|構文・フローチャート・実行例を徹底解説

実行例:1から10までの合計を求める

DECLARE @Number INT = 1;
DECLARE @Total INT = 0;

WHILE @Number <= 10
BEGIN
    SET @Total = @Total + @Number;
    SET @Number = @Number + 1;
END

PRINT @Total;

GO

この例では、変数@Numberが10以下である間だけ、BEGIN〜END内の処理が繰り返し実行されます。各ループで@Numberの値が@Totalに加算され、その後@Numberが1ずつ増加していきます。条件を満たさなくなると(@Number > 10)、ループは終了し、次のステートメントであるPRINTが実行されます。結果として、1から10までの合計値「55」が出力されます。

BREAKとCONTINUEの活用

BREAK文を使うと、条件の真偽にかかわらずループを即座に抜けられます。一方、CONTINUE文を使うと、残りの処理をスキップしてループの先頭に戻ります。両者を組み合わせることで、より柔軟な反復制御が可能になります。

DECLARE @Count INT = 0;

WHILE @Count < 100
BEGIN
    SET @Count = @Count + 1;

    IF @Count % 2 = 0
        CONTINUE;  -- 偶数なら以降をスキップ

    IF @Count > 20
        BREAK;     -- 21以上になったらループ終了

    PRINT @Count;
END

このように、WHILEループは反復回数が動的に変わる処理や、途中で中断・継続を切り替えたい処理に適しています。ただし、終了条件の記述を誤ると無限ループに陥る恐れがあるため、ループ変数の更新漏れには十分注意しましょう。

  1. 【SQL Server入門】WHILEループの使い方|構文・フローチャート・実行例を徹底解説

    WHILEループ(WHILE LOOP)は、指定した条件がTRUEを返す限り、コードを繰り返し実行したい場合に使用する制御構文です。この記事では、基本構文と具体的なサンプルコードをもとに、SQL ServerにおけるWHILEループの使い方をわかりやすく解説します。 WHILEループの基本構文 SQL ServerでWHILEループを使用する際は、以下の構文に従います。 WHILE 条件式BEGIN    { 条件がTRUEのときに実行される処理 }END; ポイント: 実行回数が事前に確定していない場合に、WHILEループを利用します。 WHILE

  2. MS SQL Serverとは?特徴・主な用途・バージョン履歴・インスタンスの基インスタンスの基礎を徹底解説

    SQL Server(MS SQL Server)とは? SQL Serverは、Microsoftが開発したリレーショナルデータベース管理システム(RDBMS)です。従来のRDBMSの枠組みにとどまらず、オブジェクト指向の概念も取り入れたORDBMS(オブジェクトリレーショナルデータベース管理システム)としての側面も併せ持っています。主な特徴は以下の通りです。 Microsoftが開発したRDBMSベースのデータベースソフトウェアである ORDBMS(オブジェクトリレーショナルデータベース管理システム)としても機能する 特定のプラットフォームに依存しない独立した環境で動作する コマンドライ