반응형
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;
반응형
'Web > Database' 카테고리의 다른 글
[Oracle/SQL] 0이 아니라 0000으로 채우기 (0) | 2021.06.30 |
---|---|
[Oracle/SQL] 문자열의 뒷부분을 *로 채우기 (0) | 2021.06.30 |