欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > mysql( 8.3.0) LISTAGG

mysql( 8.3.0) LISTAGG

2025/4/1 4:46:19 来源:https://blog.csdn.net/weixin_41826215/article/details/146430906  浏览:    关键词:mysql( 8.3.0) LISTAGG

LISTAGG 在oracle 中经常使用

在 MySQL 中,虽然没有名为 LISTAGG 的内置函数,但可以通过 GROUP_CONCAT 函数实现类似的功能——将多行数据按分组合并为单个字符串。以下是详细用法和示例:

示例

CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, -- 增加一个自增的主键ID dept VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL );

INSERT INTO employees (dept, name) VALUES ('IT', 'Alice'), ('IT', 'Bob'), ('HR', 'Carol'), ('IT', 'Alice'), -- 注意这里有重复的名字 ('HR', 'David');

SELECTdept,GROUP_CONCAT(name) AS members
FROMemployees
GROUP BYdept;

去重

与其他数据库对比

数据库函数特点
MySQLGROUP_CONCAT支持去重、排序、自定义分隔符
OracleLISTAGG语法简洁,但早期版本不支持去重
SQL ServerSTRING_AGG类似 MySQL,需 SQL Server 2017+
PostgreSQLSTRING_AGG功能与 MySQL 相似

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词