L'istruzione WHILE valuta un'espressione di condizione e se questa è TRUE esegue una sequenza di istruzioni.
L'istruzione WHILE ripete i passi specificati in DO fino a quando la condizione (condition) è TRUE. E' responsabilità dell'utente verificare che la logica del programma sia tale che il loop termina. Se condition è UNKNOWN, il loop termina immediatamente.
Se presente, Label assegna un nome all'istruzione. Ciò non ha alcun effetto sul funzionamento dell'istruzione WHILE, ma consente alle istruzioni di includere le istruzioni ITERATE e LEAVE oppure altre istruzioni con etichetta, che, a loro volta, le contengono. La seconda Label può essere presente solo se è presente la prima Label e, in questo caso, le due label devono essere identiche. Non è un errore se due o più istruzioni con etichetta allo stesso livello hanno la stessa Label, ma ciò annulla parzialmente il vantaggio della seconda Label. Il vantaggio è che ciascuna istruzione END viene associata alla relativa istruzione WHILE in modo chiaro ed accurato. Tuttavia, è un errore per un'istruzione con etichetta all'interno delle istruzioni avere la stessa label, perché ciò rende ambiguo il funzionamento delle istruzioni ITERATE e LEAVE.
DECLARE i INTEGER; SET i = 1; X : WHILE i <= 3 DO ... SET i = i + 1; END WHILE X;