How to break from a loop in PSQL?
When you write PSQL code (procedures, triggers, execute block) you might want to break the WHILE or FOR..DO loop. If you're familiar with C or some other programming language, you'll probably look for BREAK or EXIT statements. Firebird uses LEAVE. Example:
FOR SELECT EMP_NO FROM EMPLOYEE e INTO :EMPNO DO
BEGIN
/* do something */
if (empno > 50) then leave;
/* do something else*/
END
If you have nested loops, you can also use LEAVE with labels, to determine which loop (at which level) you want to exit. For more information and examples, please read the 'README.leave_labels' file in 'sql.extensions' sub-directory of 'docs' directory of your Firebird installation.
LEAVE with labels is introduced in Firebird 2.0, for earlier versions you need to write your loops differently - possibly with large BEGIN..END blocks that shield rest of the code from executing.