IF 함수는 첫 번째 인자로 지정된 연산식의 값이 TRUE이면 expression2를 반환하고, FALSE이거나 NULL이면 expression3를 반환한다. 결과로 반환되는 expression2와 expression3은 데이터 타입이 동일하거나 공통의 타입으로 변환 가능해야 한다. 둘 중 하나가 명확하게 NULL이면, 함수의 결과 타입은 NULL이 아닌 인자의 타입을 따른다.
IF( expression1, expression2, expression3 )
result :
exrpession2 | expression3
IF(a, b, c)는 다음의 CASE 문장과 같은 의미를 가진다.
CASE WHEN a IS TRUE THEN b
ELSE c
END
SELECT * FROM case_tbl;
=== <Result of SELECT Command in Line 1> ===
a
=============
1
2
3
NULL
--IF function returns the second expression when the fist is TRUE
SELECT a, IF(a=1, 'one', 'other') FROM case_tbl;
a if(a=1, 'one', 'other')
===================================
1 'one'
2 'other'
3 'other'
NULL 'other'
--If function in WHERE clause
SELECT * FROM case_tbl WHERE IF(a=1, 1, 2) = 1;
a
=============
1
1 rows selected.