SQL

NVL, NVL2

에어팟맥스 2022. 7. 4. 00:31

=== 어떠한 테이블(또는 뷰) 에서 데이터 정보를 꺼내와 보는 명령어인 select 의 처리순서 ===
    
    select 컬럼명, 컬럼명          --- 5  컬럼명 대신에 *(아스테리크)을 쓰면 모든 컬럼을 뜻하는 것이다.
    from 테이블명(또는 뷰명)    --- 1
    where 조건절                       --- 2  where 조건절이 뜻하는 것은 해당 테이블명(또는 뷰명)에서 조건에 만족하는

                                                         행(row)을 메모리(RAM)에 로딩(퍼올리는것)해주는 것이다.
    group by 절                          --- 3
    having 그룹함수조건절        --- 4
    order by 절                           --- 6

 

 

-----------------------------------------------------------------------------------------------------------------------------------------------------

 

 *** NULL 을 처리해주는 함수 ***
 -NULL 은 존재하지 않는 것이므로 4칙연산(+ - * / -)에 NULL 이 포함되면 그 결과는 무조건 NULL 이 된다.

 

1. NVL

nvl(1,2) - 1(컬럼)을 출력, 1이 null 이라면 2 출력

    select '안녕하세요'
    from dual;  -- dual 은 select 다음에 나오는 값들을 화면에 보여주기 위한 용도로 쓰이는 가상테이블이다.
    
    select 1+2, 1+null, 3*0, null*0, 2-1, 2-null, 5/2
    from dual;
    
    select nvl(7,3), nvl(null,3),
           nvl('이순신','거북선'),nvl('null','거북선')
           
    from dual;
    
    -- 7	3	이순신	null

2. NVL2

NVL2(1,2,3) - 1:컬럼명, 2:컬럼명이 null이 아닐때 출력, 3:컬럼명이 null일때 출력

  select nvl2(7,3,2), nvl2(null,3,2),
           nvl2('이순신','거북선','구국영웅'),nvl2('null','거북선','구국영웅')
           
    from dual;
    
    -- 3	2	거북선	거북선