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中文網其他相關文章!