case()

여러 개의 조건에 따라 분기하여 표현식을 평가합니다.

문법

case(CONDITION, EXPR[, ...], DEFAULT_EXPR)
필수 매개변수
CONDITION, EXPR[, ...]
조건문(CONDITION)이 true이거나, null이 아닐 때 실행할 평가식(EXPR_N)과 함께 쌍으로 입력합니다.
DEFAULT_EXPR
어느 평가 조건에도 맞지 않을 때 수행할 표현식을 지정합니다.

사용 예

  1. Score가 90이 넘으면 A, 80이 넘으면 B, 70이 넘으면 C, 60이 넘으면 D, 그 외에는 F로 평가

    json "[
        {'Name': 'Alice', 'Score': 98},
        {'Name': 'Bob', 'Score': 65},
        {'Name': 'Clark', 'Score': 40}
        ]" 
    | eval
        Grade=case(
        Score > 90, "A",
        Score > 80, "B",
        Score > 70, "C",
        Score > 60, "D",
        "F") 
    | order Name, Grade, Score
    
  2. str 필드 값의 문자열 길이가 9자보다 크면 9자로 자르고 말줄임표 적용

    json "[{'str': 'Somewhere over the rainbow'}, {'str': 'Wonderful'}]"
    | eval truncated=case(len(str) > 10, concat(left(str, 10), "…"), str)