본문 바로가기

Web/Database

[Oracle/SQL] NULL 값인 경우 다른 문자(N/A)를 넣기

반응형

Q. NULL 값인 경우 다른 문자 넣기

원래 문제: 추가 수당(COMM)이 없는 사원의 추가 수당은 N/A로 출력하세요.

 

A. NULL 처리 함수에는 NVL 함수와 NVL2 함수가 있다.

NVL([NULL인지 여부를 검사할 데이터 또는 열(필수)], [앞의 데이터가 NULL일 경우 반환할 데이터(필수])

이렇게 사용 가능한데,

처음에는 NVL(COMM, 'N/A') 라고 쓰니 에러가 났다. 원인은 역시 데이터타입이 맞지 않아서 발생했던 것 같다.

 

2가지 방법을 쓸 수 있다.

1. DECODE(NVL(COMM,-1), -1, 'N/A', COMM) AS COMM

2. NVL(TO_CHAR(COMM), 'N/A') AS COMM

 

SELECT EMPNO,
ENAME,
HIREDATE,
NEXT_DAY(ADD_MONTHS(HIREDATE, 3),'월요일') AS R_JOB,
--DECODE(NVL(COMM,-1), -1, 'N/A', COMM) AS COMM
NVL(TO_CHAR(COMM), 'N/A') AS COMM
FROM EMP;

 

반응형