if()

if() 함수는 조건 표현식을 평가하여 참이면 첫 번째 값을, 거짓이면 두 번째 값을 반환합니다. 3항 연산자(ternary operator)와 동일한 방식으로 동작합니다.

문법

if(CONDITION, EXPR_IF_TRUE, EXPR_IF_FALSE)

매개변수

CONDITION
평가할 조건 표현식입니다. 불리언 true이거나 null이 아닌 값으로 평가되면 참으로 간주합니다.
EXPR_IF_TRUE
조건이 참일 때 반환할 값 표현식입니다.
EXPR_IF_FALSE
조건이 거짓이거나 null일 때 반환할 값 표현식입니다.

설명

if() 함수는 CONDITION을 평가합니다. 조건이 불리언 true이거나 불리언이 아닌 null이 아닌 값이면 참으로 판정하여 EXPR_IF_TRUE를 반환합니다. 조건이 불리언 false이거나 null이면 EXPR_IF_FALSE를 반환합니다.

반환 타입은 EXPR_IF_TRUEEXPR_IF_FALSE의 타입에 따라 결정됩니다. 두 표현식의 타입이 서로 다르면 자동으로 상위 타입으로 승격됩니다(예: 정수와 실수가 혼합되면 실수로 반환).

오류 코드

해당 사항 없음

사용 예

이 사용 예에서 조회하는 WEB_APACHE_SAMPLE 테이블을 준비하려면 쿼리 실습용 데이터를 참고하세요.

  1. HTTP 상태 코드가 400 이상이면 오류로 분류

    table limit=5 WEB_APACHE_SAMPLE | eval result = if(status >= 400, "error", "ok") | fields status, result
    
  2. 응답 크기가 1000바이트를 초과하는지 여부에 따라 분기

    table limit=5 WEB_APACHE_SAMPLE | eval label = if(bytes > 1000, "large", "small") | fields bytes, label
    
  3. 조건이 거짓인 경우 — 두 번째 표현식 반환

    table limit=5 WEB_APACHE_SAMPLE | eval result = if(method == "GET", "읽기", "쓰기") | fields method, result
    
  4. NULL 입력 — 조건이 null이면 거짓으로 처리

    json "{'val': null}" | eval result = if(val, "존재", "없음")
    | # result: 없음
    

호환성

if() 함수는 소나 4.0 이전 버전부터 제공되었습니다.