正则表达式使用一例
2011-06-16 08:58 Tracy. 阅读(357) 评论(0) 编辑 收藏 举报如何用正则表达式实现这样的需求
通过wm_concat()函数得到了这样的结果:
'014,014,018,022,317,319,023,021'
如何继续排序和去重复呢?
期望结果:'014,018,021,022,023,317,319'
测试数据:
select '014,014,018,022,317,319,023,021' from dual;
wm_concat集合函数在plsql中不能加distinct关键字,在sql中执行没事。
有三种方式屏蔽:
1、改为sql串,动态执行;
2、定义视图;
3、先 distinct ,套一层在wm_concat。
由于原sql比较复杂,不想改写,打算通过下面两个思路解决:
1、写个去重复排序函数解决这个问题。
2、想用正则表达式实现。
对于正则表达式,大家有没有好的思路?
------------------------------------------Answer--------------------------------------------------------
with a as (
select '014,014,018,022,317,319,023,021,026,023' line from dual
) ,
b as (
select distinct regexp_substr(a.line,'[^,]+',1,level) token
from a
connect by level<=
(select length(rtrim(a.line,','))-length( replace(a.line,',','') ) +1 from a )
)
select wmsys.wm_concat(token) distinct_line
from b
本文来自博客园,作者:Tracy.,转载请注明原文链接:https://www.cnblogs.com/tracy/archive/2011/06/16/2082308.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 上周热点回顾(1.20-1.26)