문제
사원 테이블을 셀프 조인하여 사원명과 매니저명을 조회하려고 한다. 매니저가 없는 사원은 '사장'으로 출력하는 표현식으로 가장 적절한 것은?
① COALESCE(매니저명, '사장') ② NULLIF(매니저명, '사장') ③ COALESCE(NULL, 사장) ④ 매니저명 = NULL
정답
1번
해설
정답: 1. 매니저명이 NULL이면 '사장'을 출력하려면 COALESCE(매니저명, '사장')을 사용한다.
오답 풀이
- 1번: 첫 번째 NULL이 아닌 값을 반환하므로 적절하다.
- 2번: NULLIF는 두 값이 같으면 NULL을 반환하는 함수이다.
- 3번: 문자열 리터럴 표기가 없고 매니저명 값을 고려하지 않는다.
- 4번: NULL 비교는 = NULL이 아니라 IS NULL을 사용해야 한다.
보충 개념 셀프 조인은 같은 테이블을 서로 다른 별칭으로 참조해 계층 관계를 표현할 때 사용한다. 상위 값이 없을 때는 COALESCE나 NVL로 대체 값을 출력할 수 있다.