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

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

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

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

废话不多说,看图

需求示例图表:

存储过程,嘿嘿:

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

strSql:=strSql||'wm_concat(decode(QR_QSS_ID,'''||ur.qss_id||''',QR_QSS_DES,null)) as "'||ur.qss_title||'",';

end loop;

open C_Data for

'select QR_ID,QR_AGENTID,max(QR_CREATEDATE) QR_CREATEDATE,'||

substr(strSql,0,length(strSql)-1)

||'from (

select QR_QS_ID,QR_QSS_ID QR_QSS_ID,''(√)''||QR_QSS_DES QR_QSS_DES, QR_CREATEDATE,QR_U_ID,QR_AGENTID,QR_ID

from nag_questionresult,nag_questions where qr_qs_id=qs_id and qs_q_id='||V_QID||'

order by QR_ID

)

group by QR_ID,QR_AGENTID';

open C_Title for

select q.q_id,q.q_title,q.q_des,qs.qs_id,qs.qs_title ,(select count(qss_id) from nag_questionss qss where qss.qss_qs_id=qs.qs_id) qs_cols

from nag_question q,nag_questions qs where q.q_id=qs.qs_q_id and q.q_id=V_QID

order by q.q_id,qs.qs_order;

end;

存储过程

实际数据:

结果:

转载请注明来自:lzpong

Oracle 多行转多列

Oracle 多行转多列,列值转为列名   前段时间做调查问卷,客户创建自定义问卷内容,包括题目和选项内容; 之后需要到处问卷明细,,,,麻烦来咯 于是到网上到处搜索,没有直接结果;于是又找各种相似的 ...

Oracle字符串行拆分成列的三种方式

Oracle字符串行拆分成列的三种方式 --muphy 开发过程中经常会遇到将前台多个值用逗号连接一同传递到后台查询,这个用逗号连接的字符串分隔的每个字符串分别对应Oracle数据库表的不同行. 如下 ...

Oracle行转列/列转行

1.oracle的pivot函数 原表 使用pivot函数: with temp as(select '四川省' nation ,'成都市' city,'第一' ranking from dual u ...

oracle 行转列~列转行(几种方法)

工作中,我们经常会碰到行转列的情况 这里我介绍几种简单的方法--行转列 1.oracle的pivot函数 原表 使用pivot函数: with temp as(select '四川省' nation ...

poi获取合并单元格内的第一行第一列的值

当读取如图所示的excel时,显示为第1行 第1列 的内容是:合并单元格 其它在合并单元格区域内的单元格不显示 示例代码如下: import java.io.FileInputStream; impo ...

Oracle中“行转列”的实现方式

在报表的开发当中,难免会遇到行转列的问题. 以Oracle中scott的emp为例,统计各职位的人员在各部门的人数分布情况,就可以用“行转列”: scott的emp的原始数据为: EMPNO ENAM ...

awk替换第几行第几列的值

代码如下: awk '{if(2==NR){gsub(/.*/, 300, $5)}print}' list.txt 将文件list.txt的第2行第5列的值替换为300

学习笔记13—python DataFrame获取行数、列数、索引及第几行第几列的值

1. df=DataFrame([{‘A’:’11’,’B’:’12’},{‘A’:’111’,’B’:’121’},{‘A’:’1111’,’B’:’1211’}]) print df.column ...

python DataFrame获取行数、列数、索引及第几行第几列的值

print df.columns.size#列数 2 print df.iloc[:,0].size#行数 3 print df.ix[[0]].index.values[0]#索引值 0 print ...

随机推荐

SeleniumIDE从0到1 (Selenium IDE 回放)

录制完脚本后可以对录制的脚本进行回放操作. 简介一: 调回放进度(快/慢),点击按钮即可自动进行回放操作.

使用Visual Studio Code搭建TypeScript开发环境

使用Visual Studio Code搭建TypeScript开发环境 1.TypeScript是干什么的 ? TypeScript是由微软Anders Hejlsberg(安德斯·海尔斯伯格,也是 ...

Cyborg Genes

题意: 给两个字符串,求最短的以两字符串为子序列的字符串和个数 分析: 最长公共子序列的变形,num[i][j]表示个数 #include #include

Kickstart + http Linux自动化部署服务端

设备需要开启Network Boot功能.具体PXE技术就另外提,本文主要讲解配置. 在搭建该服务器之前需要关闭SELinux和iptables不然可能dhcp服务都起不来,客户端收不到IP地址,无法 ...

bootbox的使用

/* * className为green的方法 */ function alertMsgG(msg,title,fn){ bootbox.alert({ buttons: { ok: { label: ...

js显示表单的提交验证

...

基于ABP模块组件与依赖注入组件的项目插件开发

注意,阅读本文,需要先阅读以下两篇文章,并且对依赖注入有一定的基础. 模块系统:http://www.cnblogs.com/mienreal/p/4537522.html 依赖注入:http://w ...

Linux 安装搭建 tftpd 服务器

---------- For Ubantu 18.0.4 ---------- 0.安装tftp-server sudo apt-get install tftpd-hpa (服务器端) sudo a ...

图论---POJ 3660 floyd 算法(模板题)

是一道floyd变形的题目.题目让确定有几个人的位置是确定的,如果一个点有x个点能到达此点,从该点出发能到达y个点,若x+y=n-1,则该点的位置是确定的.用floyd算发出每两个点之间的距离,最后统 ...

oracle 行转列后列名,Oracle 多行转多列,列值转为列名相关推荐

  1. oracle一列多行转一行多列表示,Oracle 多行转多列,列值转为列名

    前段时间做调查问卷,客户创建自定义问卷内容,包括题目和选项内容; 之后需要导出问卷明细,,,,麻烦来咯 于是到网上到处搜索,没有直接结果;于是又找各种相似的,,终于功夫不负有心人 然后最终自己写出来了 ...

  2. linux杀死oracle进程,杀死进程后,oracle数据库无法启动

    报错信息: 报错信息一: You are running addbctl.sh version 120.1 Starting the database PROD ... SQL*Plus: Relea ...

  3. SQL:pivot函数的简单用法,实现某列的值转为列名!

    pivot语法: SELECT a.值1 as 别名1,a.值2 as 别名2,a.值3 as 别名3,a.值... as 别名..., FROMtable_name ---就是数据源 ---开始使用 ...

  4. oracle pivot函数 后求和,Oracle行转列,pivot函数和unpivot函数

    pivot函数:行转列函数: 语法:pivot(任一聚合函数 for 需专列的值所在列名 in (需转为列名的值)): unpivot函数:列转行函数: 语法:unpivot(新增值所在列的列名 fo ...

  5. oracle列转行 空行,Oracle 行转列(不固定行数的行转列,动态)(转)

    SQLSERVER :行列转换例子:  http://www.cnblogs.com/gaizai/p/3753296.html#_labelFour 1. Oracle 11g之后新增了行列转换的函 ...

  6. 行式数据库评测:Oracle 11g R2企业版

    本文我们将评测传统的行存储数据库,评测的重点仍然是tpc-h分析型查询,主要检验各种数据库在数据仓库方面的能力.我们从市场占有率最高的商业数据库Oracle开始. 一.数据库安装 Oracle在其官方 ...

  7. oracle怎么将一列挪到另一列,详细讲解Oracle数据库的数据迁移方法

    <详细讲解Oracle数据库的数据迁移方法>由会员分享,可在线阅读,更多相关<详细讲解Oracle数据库的数据迁移方法(4页珍藏版)>请在人人文库网上搜索. 1.详细讲解 Or ...

  8. oracle 大表新增列 慢_Oracle DDL性能改进-大表新增列行为分析

    生产过程中常常会遇到对表需要在线增加列,尤其是新增带缺省值的非空列,例如: ALTER TABLE .. ADD COLUMN ( ... NOT NULL DEFAULT ... ) 在Oracle ...

  9. oracle 查询列合并行,Oracle 查询合并列

    在ORACLE  查询时,有时要将多个列合并成一行,其方法如下: 1. decode 函数 decode 函数的语法为: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省 ...

最新文章

  1. 60个开发者不容错过的免费资源库
  2. android studio运行时报错the selected device is incompatible
  3. error 图片,加载错误-》实用笔记
  4. docker启动sqlserver_ASP.NET Core容器化技术Docker零基础从入门到实战演练
  5. 新手教程:如何改变应用名称
  6. SAP Commerce(原Hybris)的订单处理框架和SAP CRM One Order框架
  7. word文本样式代码样式_使用文本样式表达创建真相来源
  8. apache.camel_Apache Camel 2.11发布
  9. js里的面向对象分析-(创建实例化对象)
  10. idea端口占用解决记录
  11. 内存映射与DMA笔记
  12. EntLib 3.1学习笔记(2) : Data Access Application Block
  13. 打通高德、UC、微博,支付宝小程序组建“阿里联盟军”对抗微信小程序?| 技术头条...
  14. Javascript堆排序
  15. 如何开启MySQL的慢查询日志
  16. python筛选质数并一行输出五个_python使用filter方法递归筛选法求N以内的质数素数附一行打印心形标记的代码解析...
  17. Day33:Swift 和 Object - C
  18. Android中的armeabi等如何适配
  19. Jensen不等式初步理解及证明
  20. 【Python | 辅助软件】py7zr 库解压 7z 文件避坑

热门文章

  1. html 输入年份,判断是否是闰年
  2. 基于OpenCV的单目相机标定与三维定位
  3. 【2018版】Docker入门视频课程-汤小洋-专题视频课程
  4. 9.22生日——随笔
  5. 区块链入门教程(9)--使用WeBASE-Front部署及调用合约
  6. iPhone手机使用:微信提示“运行内存不足导致该小程序无法使用“解决方法
  7. Linux之IFS间隔符、C编程、gdb调试
  8. ArcGIS入门教程(矢量编辑工作流程)
  9. 小目标检测的一些理解
  10. js 获取汉字首拼和全拼和拼音