SQL查询以串联Oracle中多个行的列值

贾加莫特

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

以下是一个示例:

表A

PID 
A 
B 
C

表B

PID SEQ Desc 

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

SQL的输出应为-

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

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

对SQL有帮助吗?

卢佛朗哥

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

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章