createtablegg(ggidnumber(3),ggnamevarchar2(20),kcnvarchar2(20),cjnumber(5))tablespacegj_space;insertintoggvalues(14,'小黑','音乐',33);。。。。。。。insertintoggvalues(11,...
create table gg( ggid number(3), ggname varchar2(20), kcn varchar2(20), cj number(5))tablespace gj_space; insert into gg values (14,'小黑','音乐',33);。。。。。。。 insert into gg values (11,'小百','美术',55); select ggname , (select decode(cj,null,0,'',0,cj) from gg n where n.ggname=w.ggname and n.kcn='语文' ) AS "语文" , (select decode(cj,null,0,'',0,cj) from gg n where n.ggname=w.ggname and n.kcn='数学' ) AS "数学", (select decode(cj,null,0,'',0,cj) from gg n where n.ggname=w.ggname and n.kcn='英语' ) AS "英语", (select decode(cj,null,0,'',0,cj) from gg n where n.ggname=w.ggname and n.kcn='美术' ) AS "美术", (select decode(cj,null,0,'',0,cj) from gg n where n.ggname=w.ggname and n.kcn='音乐' ) AS "音乐", (select decode(cj,null,0,'',0,cj) from gg n where n.ggname=w.ggname and n.kcn='体育' ) AS "体育" from gg w group by w.ggname order by w.ggname desc;
已经解决
将select改为
nvl((select cj from gg n where n.ggname=w.ggname and n.kcn='体育') ,0) AS "体育"
就可以了,但是有什么优化没?
展开