• oracle中的nvl(), nvl2()函数


    nvl()函数是oracle/plpgsql中的一个函数,格式为:nvl(string1, replace_with)

    功能:如果string1 位null,那么nvl()函数返回replace_with的值,否则返回sting1的值。

    注意:sting1和replace_with必须是同一数据类型,除非显示的适用to_char函数。

    例子:

    nvl(to_char(some_numeric),’some string’)    --其中some_numeric指某个数据类型的值。
    

    例如:

    nvl(yan,0)>0

    nvl(yan,0) 的意思是如果yan是null, 则取0值。

    通过查询获得某个字段的合计值,如果这个值为null,则给出一个预设的 默认值(此处为0,也可以设置为其他值)。

    例如:

    select nvl(sum(t.dwx),1) from tb t ;
    

    就表示如果sum(t.dwx) = null就返回1。

    还有另一种有关的有用的方法:

    Declare i integer
    
    Select nvl(sum(t.dwx),1) into i from tb t where zx = -1;
    

    以上把获得的合计值存储到变量i中,如果查询的值为Null就把它的值设置为1。

    其他用法举例如下:

    select nvl(rulescore,0) from zwjc_graderule where rulecode='FWTD';     --如果记录中不存在rulecode ='FWTD'的数据.则查不出数据.
    
     select nvl(rulescore,0) into rule_score from zwjc_graderule where rulecode='FWTD';   --会报查不到数据的错
    
     select nvl(sum(rulescore),0) from zwjc_graderule where rulecode='FWTD';   --如果记录中不存在rulecode ='FWTD'的数据.还是可以得到一行列名为nvl(rulescore,0),值为0的数据.
    
     
     
    nvl()的扩展-nvl2()

       Oracle在nvl()函数的功能上扩展,提供了nvl2()函数。

       nvl2()(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。

    ---------

    本系列为最近一段时间学习oracle的学习笔记,记录于此作为自身回顾,其中有的来的网络,有的来的书籍,但时间已久,记不清哪些是引用,如是转载但没标注出,特意致歉。

  • 相关阅读:
    用js获取当前页面的url
    innerHTML 和 innertext 以及 outerHTML
    scrollWidth,clientWidth与offsetWidth的区别
    top、postop、scrolltop、offsetTop、scrollHeight、offsetHeight、clientHeight
    两个文字向上滚动案列
    mysql 经典案例
    学习笔记11
    顺时针打印矩阵
    重建二叉树
    镜像二叉树
  • 原文地址:https://www.cnblogs.com/space-place/p/5151913.html
Copyright © 2020-2023  润新知