Oracle Nvl()与Nv2()的使用

来源:互联网 发布:东方网络收购 编辑:程序博客网 时间:2024/04/27 18:21

Oracle Nvl函数与扩展函数nvl2()的用法


以下的文章主要介绍的是Oracle  nvl函数,本文主要介绍的是其实际应用语法,以及实际应用的参数的介绍,以下就是相关的具体内容的相关描述,希望在你浏览之后会对你今后的学习中会有所帮助。

nvl( ) 函数

从两个表达式返回一个非 null 值。

语法

  1. NVL(eExpression1, eExpression2) 

参数

  1. eExpression1, eExpression2 

如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为 null 值,则 NVL( ) 返回 .NULL.。

返回值类型

字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

说明

在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。


  1. SELECT        NVL((SELECT PRICE FROM AMS_SALE_PRICE PR WHERE UNIT_LENGTH=REMAIN_LENGTH AND BRO_DATE BETWEEN START_DATE AND END_DATE AND  PR.SALE_ID=SALE.SALE_ID),0) PRICE,        REMAIN_LENGTH,SALE.SALE_ID,SALE_NAME, BRO_DATE        FROM        AMS_SALE_REMAIN_LENGTH LEN ,AMS_SALE SALE        WHERE    SALE.SALE_ID=LEN.SALE_ID        AND LEN.SALE_ID=1595        AND REMAIN_LENGTH>0            AND bro_date >=TO_DATE('2014-1-1','yyyy-MM-dd')        AND bro_date <=TO_DATE('2014-1-7','yyyy-MM-dd')
  2. 执行效果图:丝丝

如果记录中不存在unit_length=REMAIN_LENGTH的数据.还是可以得到一行列名为nvl(price,0),值为0的数据.
select nvl(sum(rulescore),0) rule_score from zwjc_graderule where rulecode='FWTD'; 不会报错
nvl函数可以作用的数据类型

NVL的扩展-NVL2Oracle在NVL函数的功能上扩展,提供了NVL2函数。NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。

SELECT        NVL((SELECT PRICE FROM AMS_SALE_PRICE PR WHERE UNIT_LENGTH=REMAIN_LENGTH AND BRO_DATE BETWEEN START_DATE AND END_DATE AND  PR.SALE_ID=SALE.SALE_ID),0) PRICE,        REMAIN_LENGTH,SALE.SALE_ID,SALE_NAME, BRO_DATE        FROM        AMS_SALE_REMAIN_LENGTH LEN ,AMS_SALE SALE        WHERE    SALE.SALE_ID=LEN.SALE_ID        AND LEN.SALE_ID=1595        AND REMAIN_LENGTH>0            AND bro_date >=TO_DATE('2014-1-1','yyyy-MM-dd')        AND bro_date <=TO_DATE('2014-1-7','yyyy-MM-dd')

执行的效果图:丝丝

很明显的对比:

NVL2()

如果记录中不存在unit_length=REMAIN_LENGTH的数据.,值为0的数据.
如果记录中存在unit_length=REMAIN_LENGTH的数据.,值为8的数据.

nvl函数可以作用的数据类型


注意:两个参数得类型要匹配




0 0
原创粉丝点击