REPEAT
REPEAT (조건 반복)
SQL 사용자 정의 함수에서 조건이 충족되는 동안 문 블록을 반복 처리하게 하는 문법이에요. 최소 한 번은 실행되는 루프예요.
출처: 문서
본문
REPEAT UNTIL 문은 SQL 사용자 정의 함수에서 조건이 충족되는 동안 문 블록을 처리하게 하는 선택적 구조예요. 조건은 각 반복의 마지막 단계로 검증돼요.
문 블록은 적어도 한 번은 처리돼요. 첫 번째 및 이후의 모든 처리 후에 condition 표현식이 검증돼요. 결과가 true면 처리는 END REPEAT로 이동해 함수의 다음 문을 계속해요. 결과가 false면 문이 다시 처리돼요.
REPEAT 키워드 앞의 선택적 label은 블록에 이름을 붙이는 데 사용할 수 있어요.
WHILE 문은 매우 비슷한데, 차이는 REPEAT에서는 문이 적어도 한 번 처리되고 WHILE 블록에서는 문이 전혀 처리되지 않을 수도 있다는 점이에요.
시그니처
[label :] REPEAT
statements
UNTIL condition
END REPEAT
예시
다음 SQL UDF는 a의 값이 10 이상이 될 때까지 실행되는 REPEAT 문이 있는 UDF를 보여줘요.
FUNCTION test_repeat(a bigint)
RETURNS bigint
BEGIN
REPEAT
SET a = a + 1;
UNTIL a >= 10
END REPEAT;
RETURN a;
END
a는 입력 값이기도 하고 검사 전에 증가하므로, UDF는 9 이하 입력 값에 대해 항상 10을 반환하고, 더 높은 모든 값에 대해서는 입력 값에 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 문서에서 확인할 수 있어요.
더 알아보기 (Learn more)
WHILE이나 LOOP와의 차이점이 궁금하다면 각 문서를, SQL UDF 전반은 SQL 사용자 정의 함수 문서를 참고해요.