小编典典

SQL查询可连接Oracle中多个行的列值

sql

可以构造SQL来连接多行中的列值吗?

以下是一个示例:

表A

PID
一种
乙
C

表B

PID序列描述

A 1有
A 2不错
3天。
B 1做得好。
C 1是
C 2我们可以 
C 3做 
C 4这项工作!

SQL的输出应为-

PID描述
A祝你有美好的一天。
B做得好。
C是的,我们可以做这项工作!

因此,基本上,输出表的Desc列是表B的SEQ值的串联?

对SQL有帮助吗?


阅读 160

收藏
2021-05-05

共1个答案

小编典典

有几种方法取决于您使用的版本-请参见有关字符串聚合技术oracle文档。一种很常见的用法是LISTAGG

SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description
FROM B GROUP BY pid;

然后加入以A挑选pids您想要的。

注意: 开箱即用,LISTAGG仅适用于VARCHAR2列。

2021-05-05