ORACLE行记录转字符串用分隔符连接的两个函数:WM_CONCAT、LISTAGG

news/2025/11/15 20:15:29/文章来源:https://www.cnblogs.com/yclizq/p/19226176

WM_CONCAT 是 Oracle 数据库中一个非官方的聚合函数(属于 Oracle 内部函数,未正式文档正式支持),用于将多行数据的某一列值拼接成一个字符串,通常用逗号分隔。

基本语法

WM_CONCAT(列名)
  • 作用:将分组内指定列的多行值拼接为一个字符串(默认用逗号分隔)。
  • 适用场景:需要将多行数据合并为单行展示时(如“一行显示某个部门的所有员工姓名”)。

示例

假设有表 EMP 如下:

DEPTNO ENAME
10 CLARK
10 KING
10 MILLER
20 SMITH
20 JONES

使用 WM_CONCAT 按部门拼接员工姓名:

SELECT DEPTNO,WM_CONCAT(ENAME) AS DEPT_EMPLOYEES
FROM EMP
GROUP BY DEPTNO;

结果:

DEPTNO DEPT_EMPLOYEES
10 CLARK,KING,MILLER
20 SMITH,JONES

注意事项

  1. 非官方函数,兼容性差
    WM_CONCAT 并非 Oracle 官方推荐的函数,在 Oracle 12c 及以上版本中已被移除(或隐藏),可能导致“标识符无效”错误。不建议在生产环境使用

  2. 替代方案:LISTAGG(官方推荐)
    Oracle 11g 及以上版本提供了官方支持的 LISTAGG 函数,功能更强大且稳定,语法如下:

    -- 基本用法(默认逗号分隔)
    SELECT DEPTNO,LISTAGG(ENAME, ',') WITHIN GROUP (ORDER BY ENAME) AS DEPT_EMPLOYEES
    FROM EMP
    GROUP BY DEPTNO;
    
    • LISTAGG(列名, 分隔符):指定拼接的列和分隔符。
    • WITHIN GROUP (ORDER BY ...):可选,指定拼接时的排序规则。
  3. 结果类型限制
    WM_CONCAT 返回值类型为 VARCHAR2CLOB(取决于拼接后长度),若拼接结果过长可能报错。LISTAGG 也有长度限制(默认 VARCHAR2(4000)),超过时可结合 ON OVERFLOW TRUNCATE 处理(12c+ 支持)。

  4. 大小写问题
    部分环境中 WM_CONCAT 可能需要大写(WM_CONCAT),否则报错,因 Oracle 对未加引号的标识符默认转为大写。

总结

WM_CONCAT 可临时用于低版本 Oracle(11g 及以下)的字符串拼接,但因其非官方性和兼容性问题,推荐优先使用官方函数 LISTAGG,避免升级数据库后出现兼容性问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/966482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 8+ 日志管理与数据备份恢复实战指南 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

航运、应急、工业适用,AORO P1100三防平板引领行业数字化变革 - 详解

航运、应急、工业适用,AORO P1100三防平板引领行业数字化变革 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: &q…

20232419 2025-2026-1 《网络与系统攻防技术》实验五实验报告

1实验内容 1)从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取如下信息: DNS注册人及联系方式 该域名对应IP地址 IP地址注册人及联系方式 IP地址所在国家、城市和具体地理位置 PS:使用w…

为什么高手写 CSS 都偏爱 rem?这三大优势无法拒绝

核心概念:rem 是什么?rem 的全称是 root em。em 是相对于其父元素的字体大小。rem 是相对于根元素(<html>)的字体大小。、默认情况下,几乎所有浏览器的根元素字体大小都是 16px。所以,在未做任何修改时:1…

完整教程:FPGA 49 ,Xilinx Vivado 软件术语解析(Vivado 界面常用英文字段详解,以及实际应用场景和注意事项 )

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

前端css中rem的作用

核心概念:rem 是什么?rem 的全称是 root em。em 是相对于其父元素的字体大小。rem 是相对于根元素(<html>)的字体大小。、默认情况下,几乎所有浏览器的根元素字体大小都是 16px。所以,在未做任何修改时:1…

第三十天

今天的学习重心放在了Java Web开发的核心实践上,围绕石家庄铁道大学选课管理系统的功能迭代展开,收获比预期更扎实。 上午先梳理了项目的分层架构逻辑,重点巩固了Controller、Service、Dao三层的职责划分——Contro…

WinDbg 随笔 001 —— HelloWorld + WinDbg

声明:个人笔记,概不负责 今天搞出个 C 程序,连 main 都进不了,WinDbg 也没办法断,无奈只能架起 宇宙第一的 Visual Studio 写个 HelloWorld 对比一下差异。 这 WinDbg 断 HelloWorld 我搞过好多回了,每次都随机抛…

数据结构2:单链表 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

20251115 - Hash 总结

你说得对,但我几乎从来不把哈希叫做哈希,我习惯了叫 Hash。 比赛链接:https://vjudge.net/contest/766880。 卡 Hash 的出题人都是毒瘤出题人喵!一点也不良心。 A - Barn Echoes G 由于这个长度只有 \(80\),因此随…

BZOJ2372 music

思路 两个字符串等价,相当于两个串中排名相同的字符,出现的位置相同。 于是我们哈希,分别维护每种字符的出现位置序列。 现在瓶颈在于得到每种字符的排名。 发现字符集只有 \(25\),可以直接枚举,桶排即可。然后再…

P11664 [JOI 2025 Final] 缆车 / Mi Telefrico

思路 注意到,DAG 符合条件当且仅当节点 \(2 \sim n\) 的入度都不为零。 对于一个左端点 \(l\),合法的 \(r\) 具有单调性。设最小的使 \(l\) 合法的 \(r\) 为 \(R_l\),则区间 \([q_l,q_r]\) 当 \(R_{q_l} \le q_r\) …

WPF中RelayCommand的完成与使用详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

C++篇(14)二叉树进阶算法题 - 详解

C++篇(14)二叉树进阶算法题 - 详解2025-11-15 19:34 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !im…

Python 潮流周刊#127:Python 3.16 JIT 性能提升计划

本周刊由 Python猫 出品,精心筛选国内外的 400+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 温馨提…

非线性序列密码结构

NFG,NCG,NCGC,CCG关于LFSR线性反馈移位寄存器和攻击方法B-M算法参考:序列密码概述部分:https://www.cnblogs.com/luminescence/p/18938331 下面内容主要围绕对LFSR进行非线性改造的四种经典方法展开,以克服LFSR序列…

2025/11/15

2025/11/15学习算法

LoongOS 上传文件

LoongOS 上传文件一般开发板预装的系统都自带有一个ssh服务器 如果默认没打开ssh服务 通过ifconfig查看ip地址 打开ssh服务systemctl start sshd 然后用MobaXterm连接ssh并登录 先在控制台选好地方 比如 cd \test 直接…

2025年目前品质好的羊毛地毯厂家推荐

文章摘要 2025年羊毛地毯行业持续向环保化、个性化方向发展,手工编织与天然材质成为市场主流趋势。本文基于行业数据与用户口碑,深度评测当前市场上品质优异的羊毛地毯生产厂家,为采购商和消费者提供权威参考。文末…

2025年市场上品质好的羊毛地毯制造企业

摘要 2025年,羊毛地毯行业持续增长,消费者对环保、设计和品质的需求日益提升。本文基于行业数据和用户评价,为您呈现市场上品质优秀的羊毛地毯制造企业排名,并提供详细分析供参考。如果您有采购或合作意向,可通过…