Oracle SQL:组合多行的列值
本指南演示如何使用 SQL 连接 Oracle 数据库中多行的列值。我们将探索有效的方法,包括聚合函数和 LISTAGG
函数。
一种有效的方法是利用 LISTAGG
函数:
<code class="language-sql">SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description FROM TableB GROUP BY pid;</code>
此查询巧妙地将 Desc
中的 TableB
值连接到每个不同的 PID
,并使用空格作为分隔符。 输出按 PID
对结果进行分组,为每个结果提供一个串联字符串。
要整合 PID
中的 TableA
值,需要进行连接:
<code class="language-sql">SELECT a.PID, b.description FROM TableA a INNER JOIN (SELECT pid, LISTAGG(Desc, ' ') WITHIN GROUP (ORDER BY seq) AS description FROM TableB GROUP BY pid) b ON a.PID = b.pid;</code>
此连接查询提供最终结果:每行显示来自 PID
的 TableA
以及来自 Desc
的相应串联 TableB
字符串。
以上是如何在 Oracle SQL 中连接多行的列值?的详细内容。更多信息请关注PHP中文网其他相关文章!