当前位置: 首页 > news >正文

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

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.gsyq.cn/news/50610.html

相关文章:

  • 20232419 2025-2026-1 《网络与系统攻防技术》实验五实验报告
  • 第三十天
  • WinDbg 随笔 001 —— HelloWorld + WinDbg
  • C++篇(14)二叉树进阶算法题 - 详解
  • 2025年市场上品质好的羊毛地毯制造企业
  • 【STM32工程开源】基于STM32的人体健康监测环境
  • 实用指南:【C# OOP 入门到精通】从基础概念到 MVC 实战(含 SOLID 原则与完整代码)
  • tailwind自定义class问题小记
  • 2025年主流开源AI智能体框架平台概览 - 实践
  • Tarjan复建
  • 20251115
  • 20232307 2024-2025-1 《网络与系统攻防技术》实验五实验报告
  • EXECUTE IMMEDIATE语句分析
  • 产品更新与重构策略:创新与稳定的平衡之道 - 详解
  • Day39(9)F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01\jdbc-demo+springboot-web-quickstart
  • # Android Compose 实现 左滑删除
  • WebServer类 - 指南
  • EFCore中巧妙利用ToQueryString()实现批插(不借助第三方包)
  • 2025年11月安徽省有实力的旧房翻新企业综合推荐排行榜
  • 2025年Dynamics 365 CRM的工作行情如何?
  • 简单了解数组
  • 2025 最新钢结构厂家推荐排行榜,涵盖全产业链服务与优质产能企业权威甄选钢结构建筑/钢结构房屋/钢结构屋面/钢结构网架/钢结构桁架/钢结构连廊公司推荐
  • 2025 年 11 月漆渣脱水系统,漆渣脱水机,漆渣脱水装置品牌最新推荐,产能、专利、环保三维数据透视!
  • 2025 国内网架厂家最新推荐排行榜:聚焦钢结构 / 球形 / 螺栓球多场景,甄选技术服务双优的权威品牌指南
  • Flink Data Sink 理论 、架构、语义保证、两阶段提交与可插拔拓扑 - 指南
  • 2025年推拉窗源头厂家权威推荐榜单:性价比门窗/系统窗/自建房门窗源头厂家精选
  • 实战内容
  • [KaibaMath]1022 一道平面几何题的两种解法
  • 动态规划法
  • 函数表达式:JavaScript中那些你不知道的优雅写法 - 教程