谁知道postgresql里sum求和对NULL数据怎处理
sum(A+B);
B中有NULL字段。

解决方案 »

  1.   

    create table dept2 (deptno,dname,nombreemp,totalsal) as select dept.deptno,dept.dname,count(emp.deptno),sum(sal)+sum(comm) from emp,dept where emp.deptno=dept.deptno group by dept.deptno,dept.dname; 
    执行sum(sal)+sum(comm)时comm有些字段是空的, 导致结果不准确,尝试用nvl(),可提示说无些函数。
    怎样解决?
      

  2.   

    我实验了下,即使comm是空的,用sum 算也不会出错的啊,
      

  3.   

    我这边是这样的情况:如果comm里有个别的空的,大多数还有数据时会出正确结果,可如果所有comm全是空的时候,即使sum(sal)有值,也得出空的结果。
      

  4.   

    null会造成很多麻烦,建议还是处理一下比较好.PostgreSQL使用COALESCE函数处理.select A+COALESCE(B,0) from 表;
      

  5.   

    COALESCE(value[, ...])COALESCE 返回它的第一个非 NULL 的参数的值。 它常用于在为显示目的检索数据时用缺省值替换 NULL 值。 比如: SELECT COALESCE(description, short_description, '(none)') ...
    和 CASE 表达式一样,COALESCE 将不会 计算不需要用来判断结果的参数;也就是说,在第一个非空参数右边的参数不会被 计算
      

  6.   

    经过测试,用COALESCE()这个函数好用,谢谢各位!