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

listagg 多了空格 Oracle数据库

LISTAGG 函数导致多个空格问题的解决方案

当使用 Oracle 的 LISTAGG 函数时出现多个空格的问题,通常由以下原因导致:

1. 输入数据本身包含空格

如果源字段值包含前导/尾随空格,聚合时会保留这些空格:

-- 示例数据:' Apple', 'Banana ', ' Orange'
SELECT LISTAGG(product_name) WITHIN GROUP (ORDER BY id) 
FROM products;
-- 结果:" Apple Banana  Orange" (出现多余空格)

✅ 解决方案:使用 TRIM() 清理数据

SELECT LISTAGG(TRIM(product_name)) WITHIN GROUP (ORDER BY id) 
FROM products;
-- 结果:"Apple Banana Orange"
2. 分隔符配置问题

当指定分隔符为空格时,可能与其他空格叠加:

SELECT LISTAGG(product_name, ' ') WITHIN GROUP (ORDER BY id) 
FROM products;
-- 若数据本身含空格 → " Apple Banana  Orange"

✅ 解决方案:组合使用 TRIM() 和分隔符

SELECT LISTAGG(TRIM(product_name), ' ') WITHIN GROUP (ORDER BY id) 
FROM products;
3. 特殊字符问题

不可见字符(如制表符 \t)可能导致空白:

SELECT LISTAGG(REGEXP_REPLACE(product_name, '\s+', ' ')) -- 替换连续空白
FROM products;
完整最佳实践:
SELECT LISTAGG(TRIM(REGEXP_REPLACE(product_name, '\s{2,}', ' ')), -- 清理并合并连续空格', ' -- 明确分隔符) WITHIN GROUP (ORDER BY id) AS clean_list
FROM products;

关键点:始终在聚合前用 TRIM() 处理文本数据,并使用显式分隔符(如 ', ')避免歧义。


http://www.dtcms.com/a/337801.html

相关文章:

  • 【嵌入式人工智能产品开发实战】(二十四)—— 政安晨:解释一下小智AI项目中析构函数的应用
  • McCabe 环形复杂度
  • Owen大规模文本嵌入生成
  • PMP-项目管理-十大知识领域:风险管理-识别、评估、应对项目风险
  • nsfp-
  • 《Image Classification with Classic and Deep Learning Techniques》复现
  • 地图导航怎么测?
  • 深入浅出决策树
  • 决策树总结
  • 视觉语言导航(9)——位置编码 VLNBERT与HAMT 记忆模块 3.3后半段
  • 如何简单实现排行榜功能
  • 【数模国奖冲刺】备赛过程中的常见问题
  • Tomcat Engine 原理深度解析
  • python的电影院座位管理可视化数据分析系统
  • 宋红康 JVM 笔记 Day05|运行时数据区内部结构、JVM中的线程说明、程序计数器
  • linux系统查看ip命令
  • 【自动化测试】Selenium详解-WebUI自动化测试
  • 【智慧工地源码】智慧工地云平台系统,涵盖安全、质量、环境、人员和设备五大管理模块,实现实时监控、智能预警和数据分析。
  • 《清华级防护,了解一下?》
  • 局域网视频软件BeeWorks,内网顺畅沟通
  • FPGA学习笔记——IIC协议简介
  • ​​​​​​​专精特新企业数据(附参考文献, 2013-2023)
  • [openvela] Hello World :从零开始的完整实践与问题复盘
  • linux-高级IO(中)
  • Python数据容器(列表,元组,字典) 从入门到精通
  • 基于Python的就业信息推荐系统 Python+Django+Vue.js
  • 封装,继承,多态
  • 【CV 目标检测】Fast RCNN模型③——模型训练/预测
  • day44_2025-08-18
  • iOS 性能监控全流程实践,从开发到上线的多工具组合方案