当前位置: 代码迷 >> Oracle开发 >> 行转列有关问题,请老师指点,多谢
  详细解决方案

行转列有关问题,请老师指点,多谢

热度:74   发布时间:2016-04-24 06:38:30.0
行转列问题,请老师指点,谢谢!
姓名     套餐  

张三    66元
张三    96元
李四    126元
王五    156元
王五    46元
王五     96元
王五    66元

以上怎样变成

姓名      46元  66元  96元   126元  156元

张三                   1         1     
李四                                           1
王五        1         1         1                       1

请高手指点
------解决方案--------------------
select 姓名,
sum(decode(套餐,'46元',1)) as "46元",
sum(decode(套餐,'66元',1)) as "66元",
sum(decode(套餐,'96元',1)) as "96元",
sum(decode(套餐,'126元',1)) as "126元",
sum(decode(套餐,'156元',1)) as "156元"
from T
group by 姓名
order by 姓名

------解决方案--------------------
11G以后版本可用
SELECT *
FROM T
PIVOT (
         SUM(1)
         FOR 套餐
        IN  ('46元','66元','96元','126元','156元') 
)
  相关解决方案