日期:2014-05-17  浏览次数:20987 次

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

------解决方案--------------------
实测数据:
SQL code

CREATE TABLE T51
(
    situation VARCHAR2(20),
    mynum   NUMBER(4)
);

INSERT INTO T51 VALUES('a', 1);
INSERT INTO T51 VALUES('b', 2);

------解决方案--------------------
找到 包含你所有情况的"情况表"表 然后 left join 
情况表
情况
a
b
c
d

情况详细表
情况 数量
a 1
b 2

SQL code

select  a.情况,nvl(b.数量,0) as 数量
from 情况表 a left join 情况详细表 b on a.情况=b.情况 
where 1=1