oracle 行转列后列名,Oracle 多行转多列,列值转为列名

这篇博客介绍了如何在Oracle数据库中进行行转列的操作,特别是将列值转换为列名,以解决自定义问卷调查的数据导出问题。文中提供了一个存储过程示例,展示了如何使用DECODE函数实现这一转换,并给出了实际数据和结果。
摘要由CSDN通过智能技术生成

前段时间做调查问卷,客户创建自定义问卷内容,包括题目和选项内容;

之后需要导出问卷明细,,,,麻烦来咯

于是到网上到处搜索,没有直接结果;于是又找各种相似的,,终于功夫不负有心人

然后最终自己写出来了,decode才是核心

废话不多说,看图

需求示例图表:

c32a741eb3c56c8f2baed2f3f20fdb61.png

存储过程,嘿嘿:

create or replace procedure NAG_QUESTIONERSULT_EXP(

V_QID in number,

C_Title out sys_refcursor,

C_Data out sys_refcursor

)

as

/*

导出调查问卷资答案数据

Auth:lzpong 2015/09/01

*/

cursor dusers is --列信息

select qss.qss_id,nvl(qss.qss_title,substr(qs.qs_title,0,20)) QSS_TITLE from nag_questions qs,nag_questionss qss

where qss.qss_qs_id=qs.qs_id and qs.qs_q_id=V_QID

order by qs.qs_order,qss.qss_order;

strSql varchar2(10000);

begin

for ur in dusers loop

strSq

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值