在oracle中使用sum(num)统计函数,若遇到某一行中的num为空,那oracle执行机制上是把控作为0来加上去,还是直接跳过该行?

解决方案 »

  1.   

    oracle中的不清楚 在MS-SQL中是sum(ISNULL(num,0))
      

  2.   

     请问isnull的用法累死与nvl  ,idnull在学习中没有遇到过 还请解释下~
      

  3.   

    isnull(A,B)当A为null 时,用B替换
      

  4.   


    isnull是在oracle中的用法?
      

  5.   


    -- oracle 聚集函数的行为与 SQL Server 的相同-- count 函数会忽略 null 值
    SQL> select count(*),count(commission_pct) from employees;
    COUNT(*) COUNT(COMMISSION_PCT)
    ----------  ---------------------
           107                    35-- 在列中有非 null 值时,sum 会将 null 值作为 0 (sum(nvl(commission_pct, 0)))
    SQL> select sum(commission_pct) from employees;
    SUM(COMMISSION_PCT)
    -------------------
                    7.8-- sum 函数不会跳过 null 值
    SQL> select sum(1) from employees where commission_pct is null;
        SUM(1)
    ----------
            72-- 当列值都为 null 时,sum 的结果也为 null
    SQL> select count(*),count(commission_pct),sum(commission_pct)
      2  from employees where commission_pct is null;
      COUNT(*) COUNT(COMMISSION_PCT) SUM(COMMISSION_PCT)
    ----------    ---------------------                 -------------------
            72                     0
      

  6.   


    --SQL Server判断null值:isnull
    select isnull(name, '') from your_table--Oracle判断null值:nvl
    select nvl(name, '') from all_tables;
      

  7.   

    oracle执行机制上是把空作为0来加上去.--oracle 中写法是:sum(nvl(num,0))