这个问题真让我头疼!请大家帮帮忙

楼主rpljava(r)2005-12-22 18:04:53 在 Oracle / 高级技术 提问

表结构如下:  
  tablename:   a  
  create   table   a   (  
  id   number(2),  
  sex   char(8));  
  insert   into   a   values(1,   'm');--m表示男  
  insert   into   a   values(2,   'm');  
  insert   into   a   values(3,   'f');--f表示女  
  --------------------------------------------  
  怎样在一条sql中统计男的个数和女的个数。  
  显示为:  
  男         女      
  --         --  
  2             1  
  问题点数:100、回复次数:7Top

1 楼rpljava(r)回复于 2005-12-22 18:14:26 得分 0

看样还要头疼一天Top

2 楼duanzilin(寻)回复于 2005-12-22 18:54:08 得分 50

select   sum(decode(sex,'m',1,0))   "男",sum(decode(sex,'f',1,0))   "女"  
  from   aTop

3 楼chengtwn(漠孤烟)回复于 2005-12-22 20:28:32 得分 0

不错,就得用DECODETop

4 楼luke5678()回复于 2005-12-22 20:48:57 得分 0

二楼这句是查不出来的,除非sex定义成varchar2Top

5 楼sbaz(万神渡劫)回复于 2005-12-22 22:04:19 得分 0

楼上的:  
  不要随便去批评高手好不好.  
  自己没看清楚表结构就在这瞎说.BS!Top

6 楼Johnyin(境由心生...)回复于 2005-12-22 23:05:53 得分 50

补充:  
  select   sum(decode(trunc(sex),'m',1,0))   "男",sum(decode(trunc(sex),'f',1,0))   "女"  
  from   a  
  Top

7 楼xluzhong(Ralph)回复于 2005-12-23 09:19:59 得分 0

学习   markTop

你可能对以下的问题也比较感兴趣....