论坛首页 入门技术论坛

用decode 实现行转列

浏览 4937 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-02-04   最后修改:2009-04-01

1           根据第一张表写出查询结果符合第2张表的语句(1--,2—女)

       (注:这是老师给的一个作业题,呵呵)

 

表一:populations

 

country        sex          population

-----------     --------     -----------------

中国                1                340

中国                2                260

美国                1                 45     

美国                2                 55

加拿大             1                 51

加拿大             2                 49

英国                1                 40 

英国                2                 60

根据表一生产如下查询结果:

 

国家               男               女

-----------     --------     -----------

中国                340            260

美国                 45              55

美加拿大           51              49     

英国                 40              60

 

代码如下: 

select country, sum(decode(sex,'1',num)) 男, sum(decode(sex,'2',num)) 女 from populations group by country;


 

 

 请问大牛们,劳驾一下,如果不用decode而用case 语句该怎么写呢??

 

 

   发表时间:2009-02-05  
select country,
    sum(CASE WHEN(sex = '1') THEN num ELSE 0 END) 男,
    sum(CASE WHEN(sex = '2') THEN num ELSE 0 END) 女,
from populations
group by country
0 请登录后投票
   发表时间:2009-02-05  

我是这样写的,竟然也可以

 1  select country,
 2      sum(CASE sex WHEN '1' THEN num ELSE 0 END) 男,
 3      sum(CASE sex WHEN '2' THEN num ELSE 0 END) 女
 4  from population
 5  group by country

 

请问哪里有详细讲解Select语句的啊,英文的看不懂:-)

0 请登录后投票
   发表时间:2009-02-06  
armorking  太感谢你了!~~
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics