Oracle DB NVL、NVL2、NULLIF、COALESCE函数

WBOY
풀어 주다: 2016-06-07 17:32:26
원래의
1340명이 탐색했습니다.

Oracle DB NVL、NVL2、NULLIF、COALESCE函数

  • 常规函数
  • 下列函数可用于任何数据类型,且适合使用空值的场合:

    • NVL (expr1, expr2)

    • NVL2 (expr1, expr2, expr3)

    • NULLIF (expr1, expr2)

    • COALESCE (expr1, expr2, ..., exprn)

     

    下列函数可用于任何数据类型,且适合表达式列表中使用空值的场合。

     

  • NVL函数
  • 将空值转换为实际值:

    • 可以使用的数据类型为日期、字符和数字。

    • 数据类型必须匹配:

    – NVL(commission_pct,0)

    – NVL(hire_date,'01-JAN-97')

    – NVL(job_id,'NoJob Yet')

     

    要将空值转换为实际值,请使用NVL函数。

    语法

    NVL (expr1, expr2)

    在该语法中:

    • expr1是可能包含空值的源值或表达式

    • expr2是用于转换空值的目标值

    可以使用NVL函数转换任意数据类型,但是返回值始终与expr1具有相同的数据类型

    各种数据类型的NVL转换

     

  • 使用NVL函数
  •  

    LAST_NAME SALARY NVL(COMMISSION_PCT,0) AN_SAL

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

    OConnell 2600 0 31200

    Khoo 3100 0 37200

    Vargas 2500 0 30000

    Russell 14000 .4 235200

    Bernstein 9500 .25 142500

     

     

    要计算所有雇员的年度报酬,需要将月薪乘以12,然后再加上佣金百分比:

    hr@TEST0924> SELECT last_name, salary, commission_pct, (salary*12) + (salary*12*commission_pct) AN_SAL FROM employees;

     

    LAST_NAME SALARY COMMISSION_PCT AN_SAL

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

    OConnell 2600

    Vargas 2500

    Russell 14000 .4 235200

    Taylor 3200

     

    请注意,仅为那些领取佣金的雇员计算了年度报酬。如果表达式中的任何列值为空,,则结果也为空。要计算所有雇员的年度报酬,必须将空值转换为数字,然后才能应用算术运算符。在示例中,NVL函数用于将空值转换为零。

    更多详情见请继续阅读下一页的精彩内容

    相关阅读:

    Oracle COALESCE函数  

    Oracle 常用函数:nvl/NULLIF/case when/wm_concat/replace 

    Oracle NULLIF函数

    Oracle NULLIF函数的使用

    Oracle nvl(),NVL2()函数介绍

    Oracle中的NVL函数

    关于Oracle数据库中的NVL函数

    linux

    관련 라벨:
    원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿