NVL, NVL2 사용법 (null 값 처리를 위한 함수)

반응형

1. NVL 함수

NVL 은 null 값이 발생 할 경우, 그것에 대한 처리를 어떻게 할 것인지 지정하는 함수 이다.

NVL("Column A", "Value A"); 

Column A가 null 경우, Value A가 출력이 되고, 그렇지 않으면, Column A의 원래 값이 출력 된다. 

 WITH
    test
    AS
        (SELECT null AS ColumnA, 'text' AS ColumnB
           FROM DUAL)
SELECT NVL(ColumnA, 'Value1') AS ColumnA
		,NVL(ColumnB, 'Value2') AS ColumnB
  FROM test;
  
  --ColumnA 결과 : Value1
  --ColumnA 의 null 값이 'Value1' 으로 변경.
  
  --ColumnB 결과 : text 
  --ColumnB 의 값이 null 이 아니므로, 원래의 값을 그대로 출력  

 

2. NVL2 함수

NVL2는 DECODE문과 유사한 형태이다. null 인 경우와, null이 아닌 경우에 대해서 값을 지정한다.

NVL2("ColumnA", "Value1", "Value2");

  • ColumnA : 입력값
  • Value1 : null이 아닌 경우의 값
  • Value2 : null 인 경우의 값
 WITH
    test
    AS
        (SELECT null AS ColumnA, 'text' AS ColumnB
           FROM DUAL)
SELECT NVL2(ColumnA, 'Value1', 'ValueNull') AS ColumnA
		,NVL2(ColumnB, 'Value2', 'ValueNull') AS ColumnB
  FROM test;
  
--ColumnA(null) : 'ValueNull' 
--ColumnB('text') : 'Value2'

 

댓글

Designed by JB FACTORY