DB2 SQL 分組資料產生逗號分隔值
問題: DB2 SQL 中是否存在可以直接產生分組列資料逗號分隔值的函數?
場景: 我們有一個表,包含 ID 欄位和 Role 欄位。同一 ID 可能存在多行,每行代表該 ID 的不同角色。目標是將這些角色連接成每個唯一 ID 的逗號分隔字串。
範例:
<code>ID | Role ------------ 4555 | 2 4555 | 3 4555 | 4</code>
期望輸出:
<code>4555 2,3,4</code>
答案:
DB2 LUW 9.7 引入了一個新函數 LISTAGG,可以解決此問題。
文法:
<code>LISTAGG(expression, delimiter) WITHIN GROUP (ORDER BY expression ASC|DESC)</code>
說明:
用法:
要檢索每個唯一 ID 的逗號分隔角色值,可以使用以下查詢:
<code>SELECT id, LISTAGG(role, ', ') WITHIN GROUP (ORDER BY role ASC) AS roles FROM myTable GROUP BY id;</code>
輸出:
<code>ID | roles ------------ 4555 | 2,3,4</code>
附加說明:
以上是如何在 DB2 SQL 中從分組資料產生逗號分隔值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!