분기 구문 작업하기¶
Snowflake Scripting은 다음 분기 구문을 지원합니다.
IF-THEN-ELSEIF-ELSE
CASE
이 항목의 내용:
IF 문¶
Snowflake Scripting에서는 IF 문을 사용하여 조건이 충족되면 문 세트를 실행할 수 있습니다.
IF
문의 구문은 다음과 같습니다.
IF (<condition>) THEN -- Statements to execute if the <condition> is true. [ ELSEIF ( <condition_2> ) THEN -- Statements to execute if the <condition_2> is true. ] [ ELSE -- Statements to execute if none of the conditions is true. ] END IF;
IF
문에서:
추가 조건을 지정해야 하는 경우 각 조건에 대한
ELSEIF
절을 추가합니다.true로 평가되는 조건이 없는 경우 실행할 문을 지정하려면
ELSE
절을 추가합니다.ELSEIF
및ELSE
절은 선택 사항입니다.
다음은 IF
문의 간단한 예입니다.
BEGIN LET count := 1; IF (count < 0) THEN return 'negative value'; ELSEIF (count = 0) THEN return 'zero'; ELSE return 'positive value'; END IF; END;참고: SnowSQL 또는 Classic Console 을 사용하는 경우 대신 다음 예를 사용하십시오(SnowSQL 및 Classic Console 에서 Snowflake Scripting 사용하기 참조).
EXECUTE IMMEDIATE $$ BEGIN LET count := 1; IF (count < 0) THEN return 'negative value'; ELSEIF (count = 0) THEN return 'zero'; ELSE return 'positive value'; END IF; END; $$ ;
IF 문에 대한 전체 구문 및 세부 사항은 IF(Snowflake Scripting) 섹션을 참조하십시오.
CASE 문¶
CASE
문은 IF
문과 유사하게 작동하지만, 여러 조건을 지정하는 더 간단한 방법을 제공합니다.
Snowflake Scripting은 두 가지 형식의 CASE
문을 지원합니다.
다음 섹션에서는 이러한 다양한 형식을 사용하는 방법을 설명합니다.
참고
Snowflake는 Snowflake Scripting 외부에서 CASE
키워드의 다른 사용을 지원합니다(예: 조건식 CASE).
간단한 CASE 문¶
간단한 CASE
문에서 사용자는 주어진 식의 다른 가능한 값에 대해 다른 분기(WHEN 절)를 정의합니다.
간단한 CASE
문의 구문은 다음과 같습니다.
CASE ( <expression_to_match> ) WHEN <value_1_of_expression> THEN <statement>; [ <statement>; ... ] [ WHEN <value_2_of_expression> THEN <statement>; [ <statement>; ... ] ] ... -- Additional WHEN clauses for other possible values; [ ELSE <statement>; [ <statement>; ... ] ] END [ CASE ] ;
Snowflake는 value_n_of_expression
이 expression_to_match
의 값과 일치하는 첫 번째 분기를 실행합니다.
예를 들어, expression_to_evaluate
변수 값에 따라 다른 문을 실행하려고 한다고 가정합니다. 이 변수의 가능한 각 값(예: value a
, value b
등)에 대해 사용자는 실행할 문을 지정하는 WHEN
절을 정의할 수 있습니다.
DECLARE expression_to_evaluate VARCHAR DEFAULT 'default value'; BEGIN expression_to_evaluate := 'value a'; CASE (expression_to_evaluate) WHEN 'value a' THEN return 'x'; WHEN 'value b' THEN return 'y'; WHEN 'value c' THEN return 'z'; WHEN 'default value' THEN return 'default'; ELSE return 'other'; END; END;참고: SnowSQL 또는 Classic Console 을 사용하는 경우 대신 다음 예를 사용하십시오(SnowSQL 및 Classic Console 에서 Snowflake Scripting 사용하기 참조).
EXECUTE IMMEDIATE $$ DECLARE expression_to_evaluate VARCHAR DEFAULT 'default value'; BEGIN expression_to_evaluate := 'value a'; CASE (expression_to_evaluate) WHEN 'value a' THEN return 'x'; WHEN 'value b' THEN return 'y'; WHEN 'value c' THEN return 'z'; WHEN 'default value' THEN return 'default'; ELSE return 'other'; END; END; $$ ;
CASE
문에 대한 전체 구문 및 세부 사항은 CASE(Snowflake Scripting) 섹션을 참조하십시오.
검색된 CASE 문¶
검색된 CASE
문에서 사용자는 각 분기(WHEN
절)에 대해 다른 조건을 지정합니다. Snowflake는 식이 TRUE로 평가되는 첫 번째 분기를 실행합니다.
검색된 CASE
문의 구문은 다음과 같습니다.
CASE WHEN <condition_1> THEN <statement>; [ <statement>; ... ] [ WHEN <condition_2> THEN <statement>; [ <statement>; ... ] ] ... -- Additional WHEN clauses for other possible conditions; [ ELSE <statement>; [ <statement>; ... ] ] END [ CASE ] ;
예를 들어, 다음 CASE 문을 실행하는 경우, 해당 분기가 식이 TRUE로 평가되는 첫 번째 분기이기 때문에 반환된 값은 a is x
입니다.
DECLARE a VARCHAR DEFAULT 'x'; b VARCHAR DEFAULT 'y'; c VARCHAR DEFAULT 'z'; BEGIN CASE WHEN a = 'x' THEN return 'a is x'; WHEN b = 'y' THEN return 'b is y'; WHEN c = 'z' THEN return 'c is z'; ELSE return 'a is not x, b is not y, and c is not z'; END; END;참고: SnowSQL 또는 Classic Console 을 사용하는 경우 대신 다음 예를 사용하십시오(SnowSQL 및 Classic Console 에서 Snowflake Scripting 사용하기 참조).
EXECUTE IMMEDIATE $$ DECLARE a VARCHAR DEFAULT 'x'; b VARCHAR DEFAULT 'y'; c VARCHAR DEFAULT 'z'; BEGIN CASE WHEN a = 'x' THEN return 'a is x'; WHEN b = 'y' THEN return 'b is y'; WHEN c = 'z' THEN return 'c is z'; ELSE return 'a is not x, b is not y, and c is not z'; END; END; $$ ;
CASE
문에 대한 전체 구문 및 세부 사항은 CASE(Snowflake Scripting) 섹션을 참조하십시오.