본문 바로가기

[오라클 레퍼런스 함수] NVL - null을 문자열로 대체

by ㅇㅍㅍ 2023. 8. 11.
[오라클 레퍼런스 함수] NVL - null을 문자열로 대체
728x90

 

NVL

 

구문

NVL(expr1, expr2)

 

목적

"NVL은 쿼리 결과에서 null(빈 값으로 반환)을 문자열로 대체하는 데 사용됩니다. expr1이 null인 경우, NVL은 expr2를 반환합니다. expr1이 null이 아닌 경우, NVL은 expr1을 반환합니다.

인수인 expr1expr2는 어떤 데이터 유형이든 가질 수 있습니다. 데이터 유형이 다른 경우, Oracle Database는 암시적으로 하나를 다른 유형으로 변환합니다. 암시적 변환은 다음과 같이 구현됩니다:

 

  • 만약 expr1이 문자 데이터라면, Oracle Database는 비교하기 전에 expr2expr1의 데이터 유형으로 변환하고, 결과는 expr1의 문자 집합을 갖는 VARCHAR2로 반환됩니다.
  • 만약 expr1이 숫자라면, Oracle Database는 둘 중 높은 숫자 우선순위를 가진 인수를 결정하고, 다른 인수를 해당 데이터 유형으로 암시적으로 변환한 후 해당 데이터 유형을 반환합니다."

 

참고:

  • 암묵적 변환에 대한 자세한 내용은 표 2-8을 참조하고, 숫자 우선순위에 관한 정보는 "Numeric Precedence"를 참조하십시오.
  • "NVL과 유사한 기능을 제공하는 'COALESCE' 및 'CASE 표현식'"
  • Oracle Database Globalization Support Guide의 부록 C는 문자 값인 경우 NVL의 반환 값에 할당되는 정렬을 정의하는 정렬 파생 규칙에 대한 정보(collation derivation rules)를 제공합니다.

 

예제

다음 예제는 직원 이름과 커미션(commissions)의 목록을 반환하며, 직원이 커미션을 받지 않는 경우 "Not Applicable"로 대체합니다.

SELECT last_name, NVL(TO_CHAR(commission_pct), 'Not Applicable') commission
  FROM employees
  WHERE last_name LIKE 'B%'
  ORDER BY last_name;
 
LAST_NAME                 COMMISSION
------------------------- ----------------------------------------
Baer                      Not Applicable
Baida                     Not Applicable
Banda                     .1
Bates                     .15
Bell                      Not Applicable
Bernstein                 .25
Bissot                    Not Applicable
Bloom                     .2
Bull                      Not Applicable

 


출처: 오라클 레퍼런스

원문 링크: Oracle NVL 함수 문서

 

반응형

댓글