ISNULL()
•
expression이 null이면 1을 반환하고, null이 아니면 0을 반환
ISNULL(expression)
SQL
복사
•
예시
SELECT ISNULL(NULL) AS result1
, ISNULL(123) AS result2;
SQL
복사
result1 | result2 |
1 | 0 |
◦
NULL 값은 ISNULL()을 통해 1을 반환한다.
◦
123은 NULL이 아니므로 0을 반환한다.
IFNULL()
•
expression이 null이면 alt_value를 반환하고, null이 아니면 expression을 반환
IFNULL(expression, alt_value)
SQL
복사
•
예시
SELECT IFNULL(NULL, '대체 값') AS result1
, IFNULL(123, '대체 값') AS result2;
SQL
복사
result1 | result2 |
대체 값 | 123 |
◦
NULL은 대체 값 '대체 값'으로 반환된다.
◦
123은 NULL이 아니므로 그대로 반환된다.
NULLIF()
•
두 표현식을 비교하여 같으면 null을 반환하고, 같지 않으면 expr1을 반환
NULLIF(expr1, expr2)
SQL
복사
•
예시:
SELECT NULLIF(123, 123) AS result1
, NULLIF(123, 456) AS result2;
SQL
복사
result1 | result2 |
NULL | 123 |
◦
123과 123이 같으므로 NULL을 반환한다.
◦
123과 456이 다르므로 첫 번째 값인 123을 반환한다.
COALESCE()
•
col 목록에서 null이 아닌 첫 번째 값을 반환
COALESCE(col1, col2, ...., col_n)
SQL
복사
•
NULL 처리: COALESCE()는 여러 열을 한 번에 처리할 수 있으며, 열 중 하나라도 값이 있으면 그 값을 반환한다. 따라서 NULL 값을 기본값이나 다른 열의 값으로 대체하는 데 적합하다.
•
다중 인수: 인수는 여러 개일 수 있으며, 왼쪽에서 오른쪽으로 순차적으로 NULL이 아닌 값을 찾는다.
•
예제
◦
employees 테이블
emp_id | name | phone | mobile |
1 | John Doe | NULL | 010-1234-5678 |
2 | Jane Smith | 02-555-1234 | NULL |
3 | Bill Gates | NULL | NULL |
◦
전화번호(phone)와 휴대폰 번호(mobile) 중 NULL이 아닌 값을 선택하는 쿼리
SELECT
emp_id
, name
, COALESCE(phone, mobile, '연락처 없음') AS contact
FROM employees;
SQL
복사
◦
결과값
emp_id | name | contact |
1 | John Doe | 010-1234-5678 |
2 | Jane Smith | 02-555-1234 |
3 | Bill Gates | 연락처 없음 |
▪
첫 번째 행에서는 phone 값이 NULL이기 때문에 mobile 값을 반환한다.
▪
두 번째 행에서는 phone 값이 존재하므로 그 값을 반환한다.
▪
세 번째 행에서는 phone과 mobile 모두 NULL이기 때문에 '연락처 없음'이라는 기본값을 반환한다.