В Oracle существует подобный оператор под названием ВЫХОД, который или выходит из цикла или функции/процедуры (если нет никакого цикла для выхода от). Можно добавить, КОГДА проверить на некоторое условие.
Вы могли переписать вышеупомянутый пример следующим образом:
DECLARE
done BOOLEAN;
BEGIN
FOR i IN 1..50 LOOP
EXIT WHEN done;
END LOOP;
END;
Это не может быть достаточно, если Вы хотите выйти от в глубине души некоторых вложенных циклов и логики, но намного более ясно, чем несколько GOTOs и АННУЛИРУЕТ.
Если вам действительно нужно сделать это таким образом, вы можете использовать что-то вроде этого:
UPDATE messages SET test_read=1
WHERE id IN (
SELECT id FROM (
SELECT id FROM messages
ORDER BY date_added DESC
LIMIT 5, 5
) tmp
);