oracle 结果集行转列,多行数据转为一行显示,第一列内容拼接生成字段名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 结果集行转列,多行数据转为一行显示,第一列内容拼接生成字段名相关的知识,希望对你有一定的参考价值。

结果集如图所示,想要将结果集转化为一行数据,显示的效果是:2016-01人数 2016-01人均费用 2016-02人数 2016-02人均费用。。。。。。。。23 11381.68 30 10696.85 。。。。。。。。。第一列的月份是根据时间区间查询出来的,参数为起始时间和结束时间,随着参数的不同时间区间会发生变化,但都是连续的,格式也是固定的,所以转换为一行数据的列数也是随之变化的,希望大神可以帮我实现想要的效果
显示的效果是:
2016-01人数 2016-01人均费用 2016-02人数 2016-02人均费用。。。。。。。。
23 11381.68 30 10696.85 。。。。。。。。。

参考技术A select wm_concat('月份'||月份,'人数'||人数,'人均费用'||人均费用) from table_name

Oracle 行转列,逗号分隔

将查询结果多行数据用逗号分隔为一行
比如:

想转换为
100,211,102,111,110

参考技术A select wm_concat(t.operatorid) from 表 t

参考技术B --拆成了列
select a.* ,
REGEXP_SUBSTR(a.scm_order_s ,'[^,]+',1,l) AS scm_order_s
from rdc_province_col_order a,(SELECT LEVEL l FROM DUAL CONNECT BY LEVEL<=100) b
WHERE l <=LENGTH(a.scm_order_s) - LENGTH(REPLACE(scm_order_s,','))+1
--select * from rdc_province_col_order a where 1=1
and a.province_col_no = 'BZHCPKXQHZ2017122076385'
参考技术C wmsys.wm_concat 用这个函数,如果没有网上搜索一下,可以自己建一个本回答被提问者和网友采纳

以上是关于oracle 结果集行转列,多行数据转为一行显示,第一列内容拼接生成字段名的主要内容,如果未能解决你的问题,请参考以下文章

oracle 一个字段转多行

oracle 多列 列转行

Oracle 行转列,逗号分隔

oracle行转列sql怎么写?

行转列-列转行_查询

sql server 动态行转列