La sentencia WHILE evalúa una expresión de condición y si es TRUE ejecuta una secuencia de sentencias.
La sentencia WHILE repite los pasos especificados en DO siempre que condición sea TRUE. Es su responsabilidad asegurarse de que la lógica del programa sea tal que finalice el bucle. Si condición se evalúa en UNKNOWN, el bucle finaliza de inmediato.
Si está presente, Label proporciona un nombre a la sentencia. Esto no tiene efecto alguno en el comportamiento de la sentencia WHILE, pero permite que las sentencias incluyan sentencias ITERATE y LEAVE u otras sentencias con Label que, a su vez, las incluyen. Label sólo puede aparecer por segunda vez si existe un primer Label y, de ser así, ambos deben ser idénticos. Dos o más sentencias con Label al mismo nivel pueden tener el mismo Label pero esto niega en parte la ventaja del segundo Label. La ventaja es que ambos Label hacen que cada END coincida con su WHILE. No obstante, una sentencia que contiene Label en sentencias no puede tener el mismo Label, esto es un error porque hace que el comportamiento de las sentencias ITERATE y LEAVE sea ambiguo.
DECLARE i INTEGER; SET i = 1; X : WHILE i <= 3 DO ... SET i = i + 1; END WHILE X;