zoukankan      html  css  js  c++  java
  • Oracle nvl(),nvl2()函数的用法

    NVL函数 Oracle/PLSQL中的一个函数。


      格式为:

      

    NVL( string1, replace_with) 

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

      注意事项: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。

  • 相关阅读:
    POJ 1469 COURSES 二分图最大匹配
    POJ 1325 Machine Schedule 二分图最大匹配
    USACO Humble Numbers DP?
    SGU 194 Reactor Cooling 带容量上下限制的网络流
    POJ 3084 Panic Room 求最小割
    ZOJ 2587 Unique Attack 判断最小割是否唯一
    Poj 1815 Friendship 枚举+求最小割
    POJ 3308 Paratroopers 最小点权覆盖 求最小割
    1227. Rally Championship
    Etaoin Shrdlu
  • 原文地址:https://www.cnblogs.com/dqsweet/p/4927738.html
Copyright © 2011-2022 走看看