WHILE 문은 조건 표현식을 평가하며 TRUE일 경우 일련의 명령문을 실행합니다.
WHILE문은 condition이 TRUE인 동안 DO 에 지정된 단계를 반복합니다. 프로그램의 논리가 루프가 종료되도록 하는 것인지 확인하는 것은 사용자의 책임입니다. condition이 UNKNOWN으로 평가되면 루프가 즉시 종료됩니다.
Label이 있는 경우 명령문에 이름을 부여합니다. WHILE문 자체의 작동에는 영향을 주지 않지만 명령문에 ITERATE 및 LEAVE 명령문을 포함시키거나 차례대로 이러한 명령문이 포함되는 다른 레이블이 있는 명령문을 포함시키도록 합니다. 첫 번째 Label이 있는 경우에만 두 번째 Label이 제공될 수 있으며 서로 동일해야 합니다. 레벨이 같은 둘 이상의 레이블이 있는 명령문이 동일한 Label을 갖는 것은 오류가 아니지만 두 번째 Label의 장점이 부분적으로 무시됩니다. 장점은 각 END를 각각의 WHILE과 정확하게 일치시킨다는 것입니다. 그러나 명령문 내에서 레이블이 있는 명령문이 동일한 레이블을 갖는 것은 ITERATE 및 LEAVE 명령문의 작동을 모호하게 만들기 때문에 오류가 됩니다.
DECLARE i INTEGER; SET i = 1; X : WHILE i <= 3 DO ... SET i = i + 1; END WHILE X;