微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nvl函数

NVL函数 Oracle/PLsql中的一个函数

格式为:

  NVL( string1,replace_with)

  功能:如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值。

  引申一下,此NVL的作用与sqlserver 中的 ISNULL( string1,replace_with) 一样。

  注意事项:string1和replace_with必须为同一数据类型,除非显示的使用TO_CHAR函数

  例:NVL(TO_CHAR(numeric_column),'some string') 其中numeric_column代指某个数字类型的值。

  例:nvl(yanlei777,0) > 0

  NVL(yanlei777,0) 的意思是 如果 yanlei777 是NULL, 则取 0值

  通过查询获得某个字段的合计值,如果这个值为null将给出一个预设的认值

  例如:

  select nvl(sum(t.dwxhl),1)

  from tb_jhde t

  就表示如果sum(t.dwxhl) = NULL 就返回 1

  另一个有关的有用方法

  declare i integer

  select nvl(sum(t.dwxhl),1) into i from tb_jhde t where zydm=-1这样就可以把获得的合计值存储到变量

  i中,如果查询的值为null就把它的值设置为认的1

  oracle中:

  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的数据.

  select nvl(sum(rulescore),0) into rule_score from zwjc_graderule where rulecode='FWTD'; 不会报错

NVL的扩展-NVL2

        Oracle在NVL函数功能上扩展,提供了NVL2函数

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐