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 。。。。。。。。。
Oracle 行转列,逗号分隔
将查询结果多行数据用逗号分隔为一行
比如:
想转换为
100,211,102,111,110
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 结果集行转列,多行数据转为一行显示,第一列内容拼接生成字段名的主要内容,如果未能解决你的问题,请参考以下文章