LOOP
LOOP (무한 반복)
SQL 사용자 정의 함수에서 문 블록을 반복해서 처리하게 하는 문법이에요. 명시적으로 나갈 때까지 계속 반복하는 루프예요.
출처: 문서
본문
LOOP 문은 SQL 사용자 정의 함수에서 문 블록을 반복적으로 처리하게 하는 선택적 구조예요.
statements 블록은 명시적으로 LEAVE를 사용해 처리가 루프를 빠져나갈 때까지 처리돼요. 처리가 END LOOP에 도달하면 처음부터 다시 반복 처리가 시작돼요. LEAVE 문은 일반적으로 루프를 멈출 조건을 선언하는 IF 문으로 감싸요.
LOOP 키워드 앞의 선택적 label은 블록에 이름을 붙이는 데 사용할 수 있어요.
시그니처
[label :] LOOP
statements
END LOOP
예시
다음 함수는 시작 값 start_value에서 루프로 step size step만큼 100까지 세고, 100 이상 값에 도달하기까지 루프에서 증가한 단계 수를 반환해요:
FUNCTION to_one_hundred(start_value int, step int)
RETURNS int
BEGIN
DECLARE count int DEFAULT 0;
DECLARE current int DEFAULT 0;
SET current = start_value;
abc: LOOP
IF current >= 100 THEN
LEAVE abc;
END IF;
SET count = count + 1;
SET current = current + step;
END LOOP;
RETURN count;
END
예시 호출:
SELECT to_one_hundred(90, 1); --10
SELECT to_one_hundred(0, 5); --20
SELECT to_one_hundred(12, 3); -- 30
LOOP 문을 다른 문과 결합해 사용하는 다양한 복잡도의 추가 예시는 예시 SQL UDF 문서에서 확인할 수 있어요.
더 알아보기 (Learn more)
루프를 빠져나오는 방법은 LEAVE에서, SQL UDF 전반은 SQL 사용자 정의 함수 문서를 참고해요.