본문 바로가기
SQL 문제 풀기/2. SQLD 기출 : 2024.3.01~2024.4.25

<SQLD 32> 일반 함수에 대한 기출문제

by HYEHYE_SON 2024. 4. 1.
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;

 

1번 COALESCE

 

2번 CASE WHEN

 

3번 DECODE

 

4번 NULL IF

 

반응형