oracle 字符串 正则表达式 拆分,排序,合并
需求,表数据如:要求圈中的数据,必须根据线芯有序排列。

思路: 1、首先根据分号分隔元素。oracle 很蛋疼,没有提供字符串分隔函数,网上倒是多觉得有点麻烦,耐着性子继续网上找了下,还真让我找到一篇博客,那已是年前了。今天找了一片还没找到。
如:避免了oracle 的定义参数类型,字符串分隔函数。

2、元素排序这个大家都懂。
3、合并,这个用的是 wm_concat 函数,11g后才有
最终效果:


sql:
SELECT
wm_concat(core_idf || ';')
FROM
(
SELECT
core_idf
FROM
(
SELECT
regexp_substr('红:6.28,;黄:5.30,;蓝:2.30,;', '[^;]+', 1, ROWNUM) AS core_idf
FROM
dual
CONNECT BY
ROWNUM <= length(regexp_replace('红:6.28,;黄:5.30,;蓝:2.30,;', '[^;]', NULL))
) temp
ORDER BY
core_idf
);
问题点:
1、上客户环境遇到一个 数据类型不匹配问题,
原因是wm_concat 函数 返回的是clob 不能转 varchar ,采用了tochar强转。
2、观察数据还发现 wm_concat 不会根据子查询的顺序拼接(即使子查询排过序,也无效),又必须要顺序拼接,只能抛弃了
根据这个现象在网上找到了 (listagg(info,'';,'') within group(order by UPLOAD_TIME desc) ,完美解决了拼接排序问题!
和 wm_concat 相比,listagg还能自定义拼接分隔符,据说 wm_concat 是一个非公开函数,在10g前使用,在11g后推荐使用 listagg
oracle 字符串 正则表达式 拆分,排序,合并的更多相关文章
- Oracle字符串行拆分成列的三种方式
Oracle字符串行拆分成列的三种方式 --muphy 开发过程中经常会遇到将前台多个值用逗号连接一同传递到后台查询,这个用逗号连接的字符串分隔的每个字符串分别对应Oracle数据库表的不同行. 如下 ...
- oracle表连接------>排序合并连接(Merge Sort Join)
排序合并连接 (Sort Merge Join)是一种两个表在做连接时用排序操作(Sort)和合并操作(Merge)来得到连接结果集的连接方法. 对于排序合并连接的优缺点及适用场景例如以下: a,通常 ...
- Oracle 11g 分区拆分与合并
时间范围分区拆分create table emp (id number(6) not null,hire_date date not null)partition by range(hire_date ...
- Oracle使用正则表达式拆分字段里多行分布式值
不规范的表设计往往会带来程序设计上的麻烦,也会降低SQL的性能. 例如下表显示的内容: 这样我们调取多值字段用来做匹配的话就比较麻烦,我们可以通过正则表达式REGEXP_SUBSTR先将 多值得列分成 ...
- 【Oracle】oracle利用正则表达式拆分IP地址
使用oracle提供的regexp_substr()函数,对将IPV4地址分成4段: select v.ip as ip_address, regexp_substr(v.ip,,) as A, re ...
- oracle 字符串转为数字排序
select * from user order by to_number(dept_id) asc
- oracle 表连接 - sort merge joins 排序合并连接
https://blog.csdn.net/dataminer_2007/article/details/41907581一. sort merge joins连接(排序合并连接) 原理 指的是两个表 ...
- 问题:oracle字符串函数;结果:Oracle字符串函数
Oracle字符串函数 最近换了新公司,又用回Oracle数据库了,很多东西都忘记了,只是有个印象,这两晚抽了点时间,把oracle对字符串的一些处理函数做了一下整理,供日后查看.. 平常我们用Ora ...
- Goldengate进程的拆分与合并
Goldengate的拆分与合并分类: ORACLE GoldenGate 2013-10-10 15:22 721人阅读 评论(0) 收藏 举报在使用Goldengate作为复制解决方案时,随着负载 ...
随机推荐
- 远程执行shell脚本的小技巧
很多时候需要批量跑脚本执行任务,但又不想分发再执行,而是直接一条命令下去就跑脚本,该怎么玩比较嗨? 例如以下脚本: #!/bin/bash echo "$@" echo " ...
- 【题解】Luogu P5284 [十二省联考2019]字符串问题
原题传送门 我用sa做的本题 (码量似乎有点大) 先对原串建sa 考虑如何建图: 从大到小枚举长度len 先将height中等于len的两个位置在并查集合并起来,将lst也合并(lst是链表) 再将长 ...
- Elasticsearch-搭建自己的搜索系统
参考链接: https://blog.csdn.net/weixin_42730079/article/details/81113806 https://www.cnblogs.com/dreamro ...
- The dependency `XXX` is not used in any concrete target.
1.在新建项目,引入CocoaPod时,当创建了podfile文件后,执行pod install时报一下错误 2.这是因为 这个第三方不知道用于哪个target,所以必须指定target 解决方案 ...
- EmberJS 为什么我偏爱 Ember.js 胜过 Angular 和 React.js
文章写的很老到,非常值得一看!评论也很精彩,值得一看 为什么我偏爱 Ember.js 胜过 Angular 和 React.js 前几天看到了这篇文章:Why I prefer Ember.js ov ...
- SAP 跨公司销售业务
SAP 跨公司销售业务 http://blog.sina.com.cn/s/blog_95ac31e30102x5wh.html 分类: SAP_SD SAP 跨公司销售业务 一.业务简介 在由 ...
- iframe父页面和子页面获取元素和js变量
父页面获取iframe页面元素和变量 获取方法:$("#id")[0].contentWindow.showInfo(): 获取元素: $("#id").co ...
- pyhton课堂随笔-基本画图
%matplotlib inline import matplotlib as mpl import matplotlib.pyplot as plt import numpy as np impor ...
- Android模拟器Genymotion使用
介绍 Genymotion是一款出色的跨平台的Android模拟器,具有容易安装和使用.运行速度快的特点,是Android开发.测试等相关人员的必备工具. 官网地址:https://www.genym ...
- win10搭建svn服务
1,安装服务器版svnhttps://tortoisesvn.net/downloads.html查看版本 svn --version 2,创建版本仓库提倡创建公共仓库,那么可以多次增加项目svnad ...