下列函数可用于任何数据类型,且适合使用空值的场合:• NVL (expr1, expr2)• NVL2 (expr1, expr2, expr3)• NULLIF (expr1, expr2)• COALESCE (expr1, expr2, ..., exprn) 下列函数可用于任何数据类型,且适合表达式列表中使用空值的场合。
将空值转换为实际值:• 可以使用的数据类型为日期、字符和数字。• 数据类型必须匹配:– NVL(commission_pct,0)– NVL(hire_date,"01-JAN-97")– NVL(job_id,"NoJob Yet") 要将空值转换为实际值,请使用NVL函数。语法NVL (expr1, expr2)在该语法中:• expr1是可能包含空值的源值或表达式• expr2是用于转换空值的目标值可以使用NVL函数转换任意数据类型,但是
返回值始终与expr1具有相同的数据类型。各种数据类型的NVL转换
hr@TEST0924> SELECT last_name, salary,NVL(commission_pct, 0),(salary*12) + (salary*12*NVL(commission_pct, 0)) AN_SAL FROM employees; LAST_NAME SALARY NVL(COMMISSION_PCT,0) AN_SAL------------------------- ---------- --------------------- ----------OConnell 2600 0 31200Khoo 3100 0 37200Vargas 2500 0 30000Russell 14000 .4 235200Bernstein 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 2600Vargas 2500Russell 14000 .4 235200Taylor 3200 请注意,仅为那些领取佣金的雇员计算了年度报酬。如果表达式中的任何列值为空,则结果也为空。要计算所有雇员的年度报酬,必须将空值转换为数字,然后才能应用算术运算符。在示例中,NVL函数用于将空值转换为零。
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-10/91661p2.htm
相关阅读:Oracle COALESCE函数 http://www.linuxidc.com/Linux/2013-03/80659.htmOracle 常用函数:nvl/NULLIF/case when/wm_concat/replace http://www.linuxidc.com/Linux/2013-05/84224.htmOracle NULLIF函数 http://www.linuxidc.com/Linux/2013-03/80658.htmOracle NULLIF函数的使用 http://www.linuxidc.com/Linux/2011-05/35941.htmOracle nvl(),NVL2()函数介绍 http://www.linuxidc.com/Linux/2013-01/78469.htmOracle中的NVL函数 http://www.linuxidc.com/Linux/2012-10/71595.htm关于Oracle数据库中的NVL函数 http://www.linuxidc.com/Linux/2012-02/53784.htm
Oracle DB TO_CHAR、TO_DATE、TO_NUMBER 函数Oracle DB 使用转换函数和条件表达式相关资讯 Oracle nvl2 Oracle NULLIFOracle函数
- Oracle nvl(),nvl2()函数介绍 (01/24/2013 10:16:05)
本文评论 查看全部评论 (0)