请教个Oracle的问题。
就是:数据库里有两条记录
情况    数量  
  a       1
  b       2
我想这样,我查找C情况的数量,显然数据库没有C情况这条记录,但是我想让它返回
C情况,数量是0

解决方案 »

  1.   

    聚合永远有返回值。
    select max(情况) qk,nvl(max(数量),0) sl  from 表 where 情况 = 'c'
      

  2.   

    select count(1) from tab where col1='c'
      

  3.   

    select max(情况) qk,nvl(max(数量),0) sl  from 表 where 情况 = 'c'
      

  4.   

    实测数据:CREATE TABLE T51
    (
        situation VARCHAR2(20),
        mynum   NUMBER(4)
    );INSERT INTO T51 VALUES('a', 1);
    INSERT INTO T51 VALUES('b', 2);
    实测结果:
      

  5.   

    找到 包含你所有情况的"情况表"表  然后 left join 
    情况表
    情况
    a
    b
    c
    d情况详细表
    情况 数量  
      a 1
      b 2
    select  a.情况,nvl(b.数量,0) as 数量
    from 情况表 a left join 情况详细表 b on a.情况=b.情况 
    where 1=1
      

  6.   

    nvl()函数
    用法:nvl(parm,value)代表如果前面的parm的值为null那么返回的值为后面的value