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

请问,如何实现数行列转换?急。。。。。。
如:表table1有如下记录
        民族  
---------------
        汉族    
        枪族    
        回族  
        彝族    
现我想把它转换为
      汉族         枪族         回族         彝族

请问怎么转换?



------解决方案--------------------
结果表里要的是什么数据,每个民族的人数?
------解决方案--------------------
select
sum(decode(a.民族, '汉族 ',a.人数,0)) as 汉族,
sum(decode(a.民族, '枪族 ',a.人数,0)) as 枪族,
sum(decode(a.民族, '回族 ',a.人数,0)) as 回族,
sum(decode(a.民族, '彝族 ',a.人数,0)) as 彝族
from table a
------解决方案--------------------
good
------解决方案--------------------
select
sum(decode(a.民族, '汉族 ',a.人数,0)) as 汉族,
sum(decode(a.民族, '枪族 ',a.人数,0)) as 枪族,
sum(decode(a.民族, '回族 ',a.人数,0)) as 回族,
sum(decode(a.民族, '彝族 ',a.人数,0)) as 彝族
from table a;

------解决方案--------------------
不定列行列转换
这一类型的转换可能要借助于PL/SQL来完成
没试过,从网上搜搜