首页 >数据库 >mysql教程 >如何在 Oracle SQL 中将多行聚合为单行?

如何在 Oracle SQL 中将多行聚合为单行?

Patricia Arquette
Patricia Arquette原创
2025-01-15 18:34:44367浏览

How Can I Aggregate Multiple Rows into a Single Row in Oracle SQL?

在 Oracle SQL 中将多行合并为一行

Oracle SQL 提供了多种将多行合并为一行的方法。 一种方法使用 WM_CONCAT 函数(注意:在 Oracle 12c 及更高版本中已弃用)。 WM_CONCAT 连接特定列中多行的值:

<code class="language-sql">SELECT field1, WM_CONCAT(field2) FROM YourTable GROUP BY field1;</code>

对于 WM_CONCAT 不可用的 Oracle 版本,自定义聚合函数提供了可行的解决方案。 有关创建此类字符串聚合函数的详细指南可以在 Oracle-base.com 等资源中找到。 一个基本示例:

<code class="language-sql">CREATE FUNCTION String_Agg(VALUES VARCHAR2, DELIM VARCHAR2) RETURN VARCHAR2;
-- Function implementation details here</code>

此自定义函数允许字符串值聚合:

<code class="language-sql">SELECT field1, String_Agg(field2, ',') FROM YourTable GROUP BY field1;</code>

WM_CONCAT(如果适用)和自定义聚合函数都可以有效地将多行合并为一行,以更简洁、更有组织的方式呈现数据。

以上是如何在 Oracle SQL 中将多行聚合为单行?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn