무병이
무병이개발일기
무병이
전체 방문자
오늘
어제
  • 모든 (17)
    • DATABASE (15)
      • MYSQL (0)
      • ORACLE (11)
      • POSTGRE (3)
    • Study (0)
      • 게시판 만들기 (0)
    • back-end (Web) (1)
      • Spring-Project (sts3) 셋팅 (0)
      • 정리 (1)
    • 프로젝트 (0)
      • 도서관리프로그램 (0)

티스토리

hELLO · Designed By 정상우.
무병이

무병이개발일기

Oracle - NVL , NVL2 , COALESCE
DATABASE/ORACLE

Oracle - NVL , NVL2 , COALESCE

2022. 3. 15. 09:41

NVL = 해당 칼럼의 값이 NULL 값인 경우 특정 값으로 출력 

NVL2 = 해당 칼럼의 값이 NULL 값인 아닌 경우 특정 값으로 출력 

COALESCE = NULL이 아닌 첫 번째 칼럼의 값을 반환 할때 사용 

 

실습 환경

Windows 10

Oracle 11g Express Edition Release 11

Oracle SQL Developer 

Database ( hr ) - hr 테이블은 오라클에서 지원하는 테이블입니다.


NVL을 사용한 예제 1

select commission_pct from employees;

데이터를 확인해보면 NULL 값이 들어있는 데이터를 확인 할 수 있다. 

SELECT commission_pct , NVL(commission_pct,'999') FROM employees;

NVL 함수는 값이 NULL 이면 지정값 출력  / NULL이 아니면 원래 값을 출력함.

함수 - NVL("값","지정값")

 

NVL을 사용한 예제 1 결과 값

결과 값을 자세하게 보면 null 값들은 999로 출력 된다 

null이 아닌 데이터가 있는 부분은 그대로 출력되는걸 확인 할 수 있다.

 

 

NVL2을 사용한 예제 1

select commission_pct from employees;

데이터를 확인해보면 NULL 값이 들어있는 데이터를 확인 할 수 있다. 

SELECT commission_pct , NVL2(commission_pct,'000','999') FROM employees;

NVL2 함수는 값이 NULL 이면 지정값2 출력  / NULL이 아니면 지정값1 출력 

함수 - NVL2("값","지정값1","지정값2")

 

NVL2을 사용한 예제 1 결과 값

결과 값을 자세하게 보면 null 값들은 999로 출력 된다

null이 아닌 데이터가 있는 부분은 000으로 출력 된다.

 

SELECT commission_pct , NVL2(commission_pct,commission_pct,'1111111') FROM employees;

위 코드처럼 NVL2함수에서 NULL이 아닌경우 자신의 값을 그대로 출력할 수 있다.

 

NVL2을 사용한 예제 1 ( NULL이 아닌 경우 자신의 값 출력 )

결과 값처럼 NULL이 아닌 경우 자신의 값을 출력하는걸 볼 수 있다.

 

 

중요한 사실은 오라클 데이터베이스에만 존재하는 함수이다 

 

COALESCE을 사용한 예제

SELECT COALESCE('971221' , '681005', null)  AS FR,
       COALESCE(null , '721011' , '840321') AS FT,
       COALESCE(null , null , '610321') AS FA,
       COALESCE(null , '990624' , null) AS FH,
       COALESCE('910524' , null , null) AS FV, 
       COALESCE(null , null , null , null) AS FV
FROM DUAL;

COALESCE을 사용한 예제 결과 값

데이터 출력 결과를 보면 NULL값 기준을 제외한 데이터에서 첫번째 데이터가 출력된다.

모두 NULL은 NULL이다. NVL과 같다.

COALESCE는 NVL과 같이 사용이 가능하다,

'DATABASE > ORACLE' 카테고리의 다른 글

Oracle - SUBSTR , SUBSTRB  (0) 2022.03.17
Oracle - Decode  (0) 2022.03.15
Oralce - TO_CHAR ()  (0) 2022.03.14
Oralce - HAVING  (0) 2022.03.14
Oralce - GROUP BY(그룹)  (0) 2022.03.14
    'DATABASE/ORACLE' 카테고리의 다른 글
    • Oracle - SUBSTR , SUBSTRB
    • Oracle - Decode
    • Oralce - TO_CHAR ()
    • Oralce - HAVING
    무병이
    무병이
    안농~!

    티스토리툴바