NULL 값 대신 출력(NVL, NVL2)
: NULL 값 대신 다른 값을 출력함
- 두 컬럼을 출력할 때, column2가 NULL인 경우 0으로 출력
SELECT column1, column2, NVL(colmun2, 0)
FROM tablename;
: column2의 값이 NULL인 경우만 0으로 출력하고 NULL이 아닌 경우는 데이터로 출력함
- NULL값 연산 시 발생 문제
SELECT column1, column2, column3, column2+column3
FROM tablename
WHERE column4 IN('desktop','laptop');
: 만약 column3(or column2)가 NULL일 경우 column2+column3도 NULL로 출력됨
- NULL을 0으로 치환 후 연산하기
SELECT column1, column2, column3, NVL(column3, 0), column2+NVL(column3,0)
FROM tablename
WHERE column4 IN('desktop', 'laptop');
: column3가 NULL인 경우 'column2+0'으로 치환 후 연산 출력됨
- NVL2() 함수
SELECT column1, column2, column3, NVL2(column3, column2+column3, column2)
FROM tablename
WHERE column4 IN('desktop', 'laptop');
: column3가 NULL이 아닌 경우 column2+column3를 출력하고, NULL인 경우 column2를 출력
'CS > 데이터베이스' 카테고리의 다른 글
[Oracle] IF문 SQL구현 (CASE) (0) | 2020.09.06 |
---|---|
[Oracle] IF문 SQL구현 (DECODE) (0) | 2020.09.06 |
[Oracle] 암시적 형 변환 (0) | 2020.09.04 |
[Oracle] 날짜형으로 데이터 유형 변환 (TO_DATE) (0) | 2020.08.21 |
[Oracle] 문자형으로 데이터 유형 변환 (TO_CHAR) (0) | 2020.08.21 |