SQL/ORACLE

Oracle NVL 함수 활용

코드주운 2021. 4. 15. 16:28

Oracle에서 개발할 때 사용하는 함수들 중 NVL함수에 대해 활용법에 대해서 작성하려고 한다.

이전에는 NVL은 그냥 [NULL값을 치환해주는 함수]로만 생각하며 쿼리를 작성하였다.

 

[EX_1] 단순한 NVL함수 활용법 (NULL값 치환)

Table A 

TABLE A

SELECT

     NVL(CODE, '123') AS CODE,

     NAME

FROM A

 

실행 값

RESULT

※ 이렇게 NULL값을 채운다는 생각으로만 쓰였지만 

두 개 이상의 테이블을 조인할 때 좀 더 유용하게 NVL함수를 사용을 할 수 있다.

 

[EX_2]

 

TABLE A 
TABLE B

다음과 같이 두 개의 테이블을 조인하여 같은 회사(COMPANY_CD)에서 A.CODE 칼럼과 B.CODE_TYPE 칼럼을 서로 매칭 하여 B 테이블의 NULL값을 포함한 TIGON이라는 값을 얻으려고 할 때 NVL을 사용할 수 있다.

 

처음에는 NULL값이라서 매칭을 할 수 없는데 어떻게 결과값을 도출할 수 있을까 생각을 했었다.

SELECT 

    A.COMPANY_CD,

    B.TIGON

FROM A 

INNER JOIN B 

             ON A.COMPANY_CD = B.COMPANY_CD

            AND A.CODE = NVL(B.CODE_TYPE, A.CODE)

 

 

이상.