A instrução WHILE avalia uma expressão de condição e, se ela for TRUE, executa uma seqüência de instruções.
A instrução WHILE repete as etapas especificadas no DO enquanto a condição for TRUE. Você é responsável por garantir que a lógica do programa seja tal que o loop termine. Se a condição resultar em UNKNOWN, o loop termina imediatamente.
Se presente, Label fornecerá um nome à instrução. Isso não tem efeito sobre o comportamento da instrução WHILE em si, mas permite que as instruções incluam instruções ITERATE e LEAVE ou outras instruções rotuladas, que por sua vez as incluem. O segundo Label pode estar presente somente se o primeiro Label estiver presente e, se estiver, devem ser idênticos. Não é um erro se duas ou mais instruções rotuladas no mesmo nível tiverem o mesma Label, mas isso nega parcialmente a vantagem do segundo Label. A vantagem é que corresponde cada END com o seu WHILE de maneira não ambígua e precisa. No entanto, é um erro que uma instrução rotulada dentro de instruções tenha o mesmo rótulo, porque isso torna ambíguo o comportamento das instruções ITERATE e LEAVE.
DECLARE i INTEGER; SET i = 1; X : WHILE i <= 3 DO ... SET i = i + 1; END WHILE X;