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

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

是否可以构造SQL来连接多行的列值?

以下是一个例子:

表A

PID
A
B
C

表B

PID   SEQ    Desc

A     1      Have
A     2      a nice
A     3      day.
B     1      Nice Work.
C     1      Yes
C     2      we can 
C     3      do 
C     4      this work!

SQL的输出应该是-

PID   Desc
A     Have a nice day.
B     Nice Work.
C     Yes we can do this work!

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

对SQL有帮助吗?


幕布斯6054654
浏览 584回答 3
3回答

慕盖茨4494581

有几种方法取决于您的版本-请参阅Oracle关于字符串聚合技术的文档..一个非常常见的方法是使用LISTAGG:SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS descriptionFROM B GROUP BY pid;然后加入到A挑出pids你想要的。注:从盒子里出来,LISTAGG只有正确地使用VARCHAR2柱子。
打开App,查看更多内容
随时随地看视频慕课网APP