Oracle:將行組合成逗號分隔的清單
資料操作通常需要將多行聚合到一個以逗號分隔的字串中。 Oracle 提供了多種方法來實現此目的:
方法 1:LISTAGG(Oracle 11.2 及更高版本)
LISTAGG
函數(從 Oracle 11.2 開始提供)使用指定的分隔符號有效地連接行。 其語法為:
<code class="language-sql">LISTAGG(expression, delimiter [, separator]) WITHIN GROUP (ORDER BY order_expression)</code>
範例:從 countries
表格產生以逗號分隔的國家名稱清單:
<code class="language-sql">SELECT LISTAGG(country_name, ', ') WITHIN GROUP (ORDER BY country_name) FROM countries;</code>
方法2:WM_CONCAT(11.2之前的Oracle版本)
對於較舊的 Oracle 資料庫(11.2 之前),WM_CONCAT
函數提供類似的功能:
<code class="language-sql">SELECT WM_CONCAT(country_name) FROM countries;</code>
方法三:自訂PL/SQL函數
如果 LISTAGG
和 WM_CONCAT
都不夠,自訂 PL/SQL 函數可以提供靈活的解決方案。 這允許定制連接邏輯,如使用循環和字串連接提供的範例所示。
以上是如何在 Oracle 中將資料列聚合到逗號分隔的清單中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!