可以构造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有帮助吗?
有几种方法取决于您使用的版本-请参见有关字符串聚合技术的oracle文档。一种很常见的用法是LISTAGG:
LISTAGG
SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description FROM B GROUP BY pid;
然后加入以A挑选pids您想要的。
A
pids
注意: 开箱即用,LISTAGG仅适用于VARCHAR2列。
VARCHAR2