首頁 > 資料庫 > mysql教程 > LISTAGG 或 WM_CONCAT 如何將多個資料庫行組合成一個逗號分隔的清單?

LISTAGG 或 WM_CONCAT 如何將多個資料庫行組合成一個逗號分隔的清單?

Barbara Streisand
發布: 2025-01-19 18:02:09
原創
354 人瀏覽過

How Can LISTAGG or WM_CONCAT Combine Multiple Database Rows into a Single Comma-Separated List?

將多個資料庫行聚合為單一逗號分隔字串

資料庫任務通常需要將多行合併到一個以逗號分隔的清單中。 Oracle 資料庫使用 LISTAGGWM_CONCAT 函數為此提供了有效的解決方案。 雖然 WM_CONCAT 已棄用,但 LISTAGG(從 Oracle 11.2 開始提供)提供了卓越的靈活性,是建議的方法。 這兩個函數實現相同的基本結果:將行組合成分隔字串。

考慮檢索國家/地區名稱的查詢:

<code class="language-sql">SELECT * FROM countries;</code>
登入後複製

要產生這些名稱的逗號分隔列表,請使用 LISTAGG:

<code class="language-sql">SELECT LISTAGG(country_name, ', ') WITHIN GROUP (ORDER BY country_name)
FROM countries;</code>
登入後複製

這將傳回包含所有國家/地區名稱的單行,用逗號整齊地分隔並按字母順序排列。

對於支援已棄用的 WM_CONCAT 的資料庫,等效項是:

<code class="language-sql">SELECT WM_CONCAT(country_name)
FROM countries;</code>
登入後複製

雖然兩者產生相似的輸出,但 LISTAGG 具有優勢。 它允許自訂分隔符號並提供對聚合值順序的控制。有關詳細的 LISTAGG 函數參數,請參閱資料庫文件。

以上是LISTAGG 或 WM_CONCAT 如何將多個資料庫行組合成一個逗號分隔的清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板