SQL プロシージャーの WHILE ステートメント

WHILE ステートメントは、WHILE ループの先頭で条件が偽と評価されるまで実行される一連のステートメントを定義します。

while-loop-condition (式) は、ループの反復処理ごとに、事前に評価されます。

単純な WHILE ループを使用した SQL プロシージャーの例を以下に示します。

  CREATE PROCEDURE sum_mn (IN p_start INT
                          ,IN p_end INT
                          ,OUT p_sum INT)
  SPECIFIC sum_mn
  LANGUAGE SQL
  smn: BEGIN

  DECLARE v_temp INTEGER DEFAULT 0;
  DECLARE v_current INTEGER;
 
  SET v_current = p_start;

  WHILE (v_current <= p_end) DO
    SET v_temp = v_temp + v_current;
    SET v_current = v_current + 1;
  END WHILE;
  p_sum = v_current;
  END smn;

注: 数式を使用すれば、この例に示されているような論理を簡単にインプリメントすることができます。 構文を分かりやすく説明するために、例は単純化されています。