728x90
매일 SQLD 기출 문제 풀기 챌린지
문제 32.
보기에서 SELECT 결과가 NULL이 아닌 경우는?
① SELECT COALESCE(1, 2, 3) FROM DUAL;
② SELECT CASE 0 WHEN 1 THEN 2 ELSE NULL END FROM DUAL;
③ SELECT DECODE('A', 'B', 'C', NULL) FROM DUAL;
④ SELECT NULLIF('A', 'A') FROM DUAL;
해설해보기
1. COALESCE( A, B )
COALESC() 함수는 A가 NULL이면 B를 출력하는 함수이다.
* NVL() vs COALESCE()
- COALESCE()함수는 COALESCE( A, B, C ) 가 가능하여
A가 NULL이면 B, B도 NULL이면 C를 실행할 수 있다
2. CASE WHEN 조건문
CASE WHEN [조건1] TEHN [조건1이 참일 때 출력할 값]
WHEN [조건2] THEN [조건2가 참일 때 출력할 값]
ELSE [조건1,조건2..등 모두 해당되지 않을 때 출력할 값] END
3. DECODE() 함수
DECODE( 컬럼명, 조건, 조건을 만족할 때 출력할 값, 기본값)
DECODE( 컬럼명, 조건1, 조건1을 만족할 때 출력할 값, 조건2, 조건2를 만족할 때 출력할 값 )
4. NULLIF( A, B )
A와 B가 같으면 NULL을 출력하고
A와 B가 같지 않으면 A를 출력한다
■ 함께 알아두면 좋은 함수
- NVL( A, B )
NVL()함수는 A값이 NULL이면 B를 출력하는 함수이다.
- NVL( A, B )
NVL()함수는 A값이 NULL이면 B를 출력하는 함수이다.
- NVL2(A, B, C)
A가 NULL 아닌 경우 B를 반환하고,
A가 NULL인 경우 C를 반환하는 함수이다.
- 보기 1번의 경우 첫번째 인자인 1이 null이 아니기 때문에 두번째 인자인 2를 출력한다.
- 보기 2번의 경우 0이 1일 경우 2를 출력하고 0이 1이 아닌 경우 null을 출력하는 것이기 때문에 null을 출력한다
- 보기 3번의 경우 첫번째 인자가 B일 경우 C를 출력하고, 그렇지 않을 경우 null을 출력하라는 의미이므로 null을 출력한다.
- 보기 4번의 경우 첫번째인자와 두번째 인자가 같을 경우 null을 출력하는 nullif를 사용했는데, 두 인자 모두 A를 갖고 있어 값이 동일하기 때문에 null을 출력한다.
따라서 null을 출력하지 않는 보기는 ① 이다.
직접 실행해보기
SELECT COALESCE(1, 2, 3) FROM DUAL;
SELECT CASE 0 WHEN 1 THEN 2 ELSE NULL END FROM DUAL;
SELECT DECODE('A', 'B', 'C', NULL) FROM DUAL;
SELECT NULLIF('A', 'A') FROM DUAL;
반응형
'SQL 문제 풀기 > 2. SQLD 기출 : 2024.3.01~2024.4.25' 카테고리의 다른 글
<SQLD 34> 그룹 함수와 null 값에 대한 기출문제 (0) | 2024.04.03 |
---|---|
<SQLD 33> 그룹 함수에 대한 기출문제 (0) | 2024.04.02 |
<SQLD 31> nvl 함수에 대한 기출문제 (0) | 2024.03.31 |
<SQLD 30> ntile 함수에 대한 기출문제 (0) | 2024.03.30 |
<SQLD 29> reporting 함수에 대한 기출문제 (0) | 2024.03.29 |