WHILE ステートメントは、条件式を評価し、それが TRUE であれば、一連のステートメントを実行します。
WHILE ステートメントは、condition が TRUE になるまで、DO で指定されたステップを繰り返します。プログラムの論理の中で、ご自分の責任で、必ずループが終了するようにしなければなりません。condition が UNKNOWN と評価される場合、ループは直ちに終了します。
もしあれば、Label はステートメントに名前を与えます。このことは WHILE ステートメントそれ自体の動作に影響を与えませんが、ステートメントは ITERATE および LEAVE ステートメント、または中に それらのステートメントを組み込む他のラベル付きステートメントを組み込めるようになります。2 番目の LABEL を取れるのは、最初の LABEL がある場合だけであり、そのとき 2 つの LABEL は同一でなければなりません。同じレベルの 2 つ以上のラベル付きステートメントが同じ Label を持つことはエラーではありませんが、2 番目の Label の利点は部分的に否定されます。その利点とは、これがあいまいさなしに正確に各 END をその WHILE と一致させることです。ただし、ステートメント内のラベル付きステートメントが同じ Label を持つとエラーになります。なぜなら、この場合 ITERATE と LEAVE ステートメントの動作があいまいになるからです。
DECLARE i INTEGER; SET i = 1; X : WHILE i <= 3 DO ... SET i = i + 1; END WHILE X;