REPEAT#
Синтаксис#
[label :] REPEAT
statements
UNTIL condition
END REPEAT
Описание#
Оператор REPEAT UNTIL — это необязательная конструкция в SQL пользовательские функции,
которая позволяет выполнять блок операторов до тех пор, пока выполняется
условие. Условие проверяется в конце каждой итерации.
Блок операторов выполняется как минимум один раз. После первой и каждой
последующей итерации вычисляется выражение condition. Если результат
true, выполнение переходит к END REPEAT и продолжается со следующего
оператора. Если результат false, блок выполняется снова.
Необязательная label перед ключевым словом REPEAT может использоваться
для именования блока.
Обратите внимание, что оператор WHILE очень похож, с той разницей,
что для REPEAT блок выполняется как минимум один раз, а для WHILE
может не выполниться ни разу.
Примеры#
Следующая SQL UDF показывает UDF с оператором REPEAT, который выполняется,
пока значение a не станет больше или равно 10.
FUNCTION test_repeat(a bigint)
RETURNS bigint
BEGIN
REPEAT
SET a = a + 1;
UNTIL a >= 10
END REPEAT;
RETURN a;
END
Поскольку a также является входным значением и увеличивается до проверки, UDF
всегда возвращает 10 для входных значений 9 или меньше и входное значение
плюс 1 для всех больших значений.
Ниже приведены несколько примеров вызова с результатом и пояснением:
SELECT test_repeat(5); -- 10
SELECT test_repeat(9); -- 10
SELECT test_repeat(10); -- 11
SELECT test_repeat(11); -- 12
SELECT test_repeat(12); -- 13
Дополнительные примеры различной сложности, демонстрирующие использование
оператора REPEAT в сочетании с другими операторами, доступны в
Примеры SQL UDF.