case()
여러 개의 조건에 따라 분기하여 표현식을 평가합니다.
문법
case(CONDITION, EXPR[, ...], DEFAULT_EXPR)
필수 매개변수
CONDITION, EXPR[, ...]
- 조건문(CONDITION)이 true이거나, null이 아닐 때 실행할 평가식(EXPR_N)과 함께 쌍으로 입력합니다.
DEFAULT_EXPR
- 어느 평가 조건에도 맞지 않을 때 수행할 표현식을 지정합니다.
사용 예
-
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
-
str 필드 값의 문자열 길이가 9자보다 크면 9자로 자르고 말줄임표 적용
json "[{'str': 'Somewhere over the rainbow'}, {'str': 'Wonderful'}]" | eval truncated=case(len(str) > 10, concat(left(str, 10), "…"), str)