如我有表
mytable 
id  price
1   10
2   20
select sum(price) from mytable 
==> 30mytable 
id  price
select sum(price) from mytable 
==> 没有行,我这里要返回为0 SQL要怎么写,
谢谢

解决方案 »

  1.   

    SELECT ISNULL((select sum(price) from mytable ),0)
      

  2.   

    select isnull(sum(price),0) from mytable 
      

  3.   

    select isnull(sum(price),0) from mytable
      

  4.   

    select sum(case when abs(price)>0 then price else 0 end) from mytable 
      

  5.   


    select sum(case when (select count(1) from tb=0) then 0 else price end ) 
    from mytable 
      

  6.   

    原因是因为你的price 字段中有null的信息
    所以在统计sum()的时候会出现0 
    解决办法就是
    用 isnull(price,0)select isnull(sum(price),0) from mytable 
      

  7.   

    declare @sum dec(18,2)
    select @sum=sum(price) from mytable
    set @sum=isnull(@sum,0)
      

  8.   

    不好意思搞错了
    select isnull((select sum(score) from tb ),0)
    select isnull(sum(score),0) from tb 都可以