当前位置: 代码迷 >> Oracle开发 >> SQL 判断是否有记要
  详细解决方案

SQL 判断是否有记要

热度:56   发布时间:2016-04-24 06:28:52.0
SQL 判断是否有记录
-- 要求逻辑
select a from dagege where ....
有记录返回id; 
无记录,返回 0  

-- 测试表
CREATE TABLE dagege(a VARCHAR2(10), b VARCHAR2(10));
INSERT INTO dagege VALUES('a','b');
INSERT INTO dagege VALUES('a','c');
INSERT INTO dagege VALUES('a','d');
INSERT INTO dagege VALUES('e','f');
INSERT INTO dagege VALUES('e','g');
INSERT INTO dagege VALUES('h','i');
COMMIT;

-- 下面这个有记录能返回数据,但是我做不到无记录返回0,请前辈们帮忙看看
WITH t1 AS 
  (SELECT COUNT(*) AS cnt,t.a 
  FROM dagege t
  WHERE t.b = 'b'
  GROUP BY t.a)
SELECT decode(t1.cnt, 0, '0', t1.a) FROM t1;
------解决思路----------------------
WITH?t1?AS?
??(SELECT?COUNT(*)?AS?cnt,t.a?
??FROM?dagege?t
??WHERE?t.b?=?'b'
??GROUP?BY?t.a
union all
select 0,'b' from dual)
SELECT?a,sum(cnt)?FROM?t1 group by a;
简单拿分走人
  相关解决方案