oracle sql多条数据合并成一条(数据量大,wmsys.wm_concat报错)

oracle sql多条数据合并成一条(数据量大,wmsys.wm_concat报错),第1张

SELECT RTRIM(XMLAGG(XMLPARSE(CONTENT 字段a || ',' WELLFORMED))

                              GETCLOBVAL(), ',')

FROM   表;

我现在身边没有 数据库环境 这个是我以前写的SQL

你看一下,修改一下就可以了

Oracle分组查询用逗号分隔结果SQL语句

表一:

学号 姓名

1 张三

2 李四

3 王五

。。。。

表二:

学号 选修课程

1 语文

1 数学

2 英语

2 语文

3 数学

3 英语

3 历史

。。。。。

要求查处结果

学好 姓名 选修课程所有课程名称以,隔开

1 张三 语文,数学

2 李四 英语,语文

3 王五 数学,英语,历史

;

create table a_lyh_test

as

select 1 as "学号" , '张三' as "姓名" from dual

union all

select 2 as "学号" , '李四' as "姓名" from dual

union all

select 3 as "学号" , '王五' as "姓名" from dual

;

create table b_lyh_test

as

select 1 as "学号" , '语文' as "选修课程" from dual

union all

select 1 as "学号" , '数学' as "选修课程" from dual

union all

select 2 as "学号" , '英语' as "选修课程" from dual

union all

select 2 as "学号" , '语文' as "选修课程" from dual

union all

select 3 as "学号" , '数学' as "选修课程" from dual

union all

select 3 as "学号" , '英语' as "选修课程" from dual

union all

select 3 as "学号" , '历史' as "选修课程" from dual

;

select f"学号"

,f"姓名"

,ltrim(max(sys_connect_by_path(f"选修课程",','))

keep (dense_rank last order by fpnum),',') as "选修课程"

from

(

select t"学号"

,t"姓名"

,t"选修课程"

,row_number() over(partition by t"学号" order by t"姓名") as pnum

,row_number() over(partition by t"学号" order by t"姓名")-1 as lnum

from

(

select a"学号",a"姓名",b"选修课程"

from a_lyh_test a

,b_lyh_test b

where a"学号" = b"学号"

) t

) f

group by f"学号",f"姓名"

connect by flnum = prior fpnum and f"学号" = prior f"学号"

start with fpnum = 1;

SELECT  FROM

(SELECT 

--tID,

tBigClass,

tNum,

tSmallClass,

t[Content],

tIsQuantization,

--tDeptId,

--tTargetValue,

--tMinValue,

--tStriveValue,

--tScore,

--tBelongToPeriod,

--tQuantizationType,

--tIndicatorSepDept,

--tF_CreateDate,

--t[Status]

dzir

,row=ROW_NUMBER() OVER(PARTITION BY tID ORDER BY dzirCreateTime desc)

FROM

DK_ZB_DeptIndicator AS t

RIGHT JOIN 

DK_ZB_IndicatorReport AS dzir ON dzirIndicatorsID = tID)   AS t WHERE  trow = 1

 

DK_ZB_DeptIndicator  主表

DK_ZB_IndicatorReport  对应的多表

以上就是关于oracle sql多条数据合并成一条(数据量大,wmsys.wm_concat报错)全部的内容,包括:oracle sql多条数据合并成一条(数据量大,wmsys.wm_concat报错)、求助,oracle多行数据合并成一行、sqlserver 一对多查询将多条数据合并等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9741489.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存