쯔이's Dev

FUNCTION(5) - 단일행 함수(NULL처리 함수) 본문

SQL/함수

FUNCTION(5) - 단일행 함수(NULL처리 함수)

jjhim531 2024. 8. 15. 16:53
반응형

 [ [ NULL처리 함수 ] ] 

 

< NVL >

[표현법]

NVL(컬럼, 해당컬럼이 NULL일 경우 보여줄 값)

EX)

SELECT
    emp_name,
    nvl(bonus, 0)
FROM
    employee;

 

 < NVL 2> 

[표현법]

NVL2( 컬럼, 반환값1, 반환값2 )

* 반환값1 : 해당컬럼이 존재할 경우 보여줄 값
* 반환값2 : 해당컬럼이 NULL일 경우 보여줄 값

EX)

SELECT
    emp_name,
    bonus,
    nvl2(bonus, 'O', 'X')
FROM
    employee;



 < NULLIF> 

[표현법]

NULLIF(비교대상1, 비교대상2)

* 두 값이 일치하면 NULL 일치하지 않으면 비교대상1 반환

SELECT NULLIF('123', '123') FROM DUAL;

SELECT NULLIF('123', '456') FROM DUAL;

  [ [ 선택함수 ] ]  

 < DECODE > 

[표현법]

DECODE(비교하고자 하는 대상(컬럼, 연산식, 함수식), 비교값1, 결과값1, 비교값2, 결과값2....., 기타값)

EX)

SELECT
    emp_id,
    emp_name,
    emp_no,
    decode(substr(emp_no, 8, 1), '1', '남', '2', '여',
           '3', '남', '4', '여', '외계인') AS "성별"
FROM
    employee;

 < CASE WHEN THEN > 

 

  [표현법]  

CASE
        WHEN 조건식 1 THEN 결과값1
        WHEN 조건식 2 THEN 결과값2
        ...
        ELSE 결과값
    END

EX)

SELECT
    emp_name,
    salary,
    CASE
        WHEN salary >= 5000000 THEN
            '고급'
        WHEN salary >= 3500000 THEN
            '중급'
        ELSE
            '초급'
    END
FROM
    employee;

728x90
반응형