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中文网其他相关文章!