16.조건 함수

Edit

16.1in

문법

in(대상표현식, 표현식1, 표현식2, …)

표현식의 평가 값이 이후의 표현식 평가 값 집합 중에 존재하는지 여부를 평가합니다. 대상표현식의 평가 값이 이후에 이어지는 다수의 표현식 평가값 중 하나와 일치하면 true, 그렇지 않으면 false를 반환합니다.

사용 예

1) user_agent가 msie, chrome, safari, firefox 중 하나와 일치하는지 검사

in(user_agent, "msie", "chrome", "safari", "firefox")

2) user_agent가 google 혹은 yahoo 문자열을 포함하고 있는지 검사

in(user_agent, "*google*", "*yahoo*")

3) level이 6, 7 중 하나인지 검사

in(level, 6, 7)

16.2nvl

문법

nvl(대상표현식, 기본값)

대상표현식이 null이 아니면 대상표현식의 평가값을 반환하고, null이면 기본값을 반환합니다.

사용 예

1) 원본이 null 인 경우 빈 문자열로 대체

nvl("hello", "") => "hello"
nvl(null, "") => ""

16.3if

문법

if(조건문, 표현식1, 표현식2)

조건문이 true 이거나 null 이 아니면 참으로 평가됩니다. 조건문이 참인 경우 표현식1, 거짓인 경우 표현식2가 평가됩니다.

사용 예

1) status 코드가 200인 경우 ok, 아닌 경우 error 평가

if(status == "200", "ok", "error")

16.4case

문법

case(조건문1, 표현식1, 조건문2, 표현식2, …,  표현식3)

여러 개의 조건에 따라 분기하여 표현식을 평가합니다. 조건문의 평가 결과가 true이거나 null이 아닌 경우 참으로 평가됩니다. 조건문과 표현식은 일 대 일로 대응되며, 짝이 맞지 않는 마지막 표현식은 모든 조건문이 거짓일 때 기본 표현식으로 평가됩니다.

사용 예

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

case(score > 90, "A", score > 80, "B", score > 70, "C", score > 60, "D", "F")

2) str 필드 값의 문자열 길이가 10 이상이면 10 글자로 자르고 말줄임표 적용

case(len(str) >= 10, concat(left(str, 10), "…"), str)

16.5match

문법

match(표현식, 정규표현식)

문자열의 일부가 정규표현식과 일치하는지 여부를 반환합니다. 표현식이 null인 경우 false를 반환합니다. 표현식이 문자열이 아닌 경우 문자열로 자동 변환 후 일치 여부를 판정합니다.

사용 예

match("8 miles", "\\d+ [a-z]+") => true
match(" 8 miles ", "^\\d+ [a-z]+$") => false
match("sample", "\\d+ [a-z]+") => false
match(123, "\\d+") => true
match(null, "\\d+") => false
Count of comments [0]