본문 바로가기
CS/데이터베이스

[Oracle] NULL 값 대신 출력 (NVL, NVL2)

by 김크롱 2020. 9. 4.

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를 출력