使用 LISTAGG 在 DB2 SQL 中生成逗号分隔的列表
DB2 LISTAGG
函数简化了以逗号分隔的列值列表的创建,特别是在处理分组数据时。此函数使用自定义分隔符有效地连接指定列中共享相同分组标准的行的值。
让我们用一个包含 ID
和 Role
列的表进行说明,其中 ID
可能有多个关联的 Role
值。 要为每个唯一 ID 生成以逗号分隔的角色列表,请使用以下 SQL 查询:
<code class="language-sql">SELECT ID, LISTAGG(Role, ', ') WITHIN GROUP (ORDER BY Role ASC) AS Roles FROM myTable GROUP BY ID;</code>
示例数据:
<code>ID | Role ------------ 4555 | 2 4555 | 3 4555 | 4</code>
结果:
<code>ID | Roles ------------ 4555 | 2, 3, 4</code>
ORDER BY
中的 LISTAGG
子句控制连接值的顺序。 ORDER BY Role ASC
按升序排列; ORDER BY Role DESC
会将它们降序排列。 省略 ORDER BY
会导致未定义的顺序。
以上是如何使用 LISTAGG 在 DB2 中创建逗号分隔的列值列表?的详细内容。更多信息请关注PHP中文网其他相关文章!