oracle关键字pivot行转列

原始表数据:

 

辅助思考:


 

select usertelephone,
  max(decode(filedid, 1, answervalue, 0)) as "问题1",
  max(decode(filedid, 2, answervalue, 0)) as "问题2",
  max(decode(filedid, 3, answervalue, 0)) as "问题3",
  max(decode(filedid, 4, answervalue, 0)) as "问题4",
  max(decode(filedid, 5, answervalue, 0)) as "问题5",
  max(decode(filedid, 6, answervalue, 0)) as "问题6",
  max(decode(filedid, 7, answervalue, 0)) as "问题7"
from t_d_Serveyanswer where serveyid =3 group by usertelephone order by 1 asc;

 

 

涨姿势的关键字:pivot

select * from

(select usertelephone, filedname, answervalue,t.adddate from t_d_Serveyanswer t join

t_d_Serveyfiled t1 on t.filedid = t1.id where t.serveyid =3)

pivot(

max(answervalue) for filedname in (

'坑德基和麦当劳 你更喜欢 吃什么?',

'你什么?',

'你是那种人?',

'性别',

'你爱好什么?',

'你叫什么?',

'你用过天翼客服吗?'

)

) order by 1;

 

总结:计算原理group by 聚合函数计算列以外的其他列。

for纵向展示(作为字段),聚合计算和for以外的其他列 垂直展示

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值