需求,表数据如:要求圈中的数据,必须根据线芯有序排列。

思路: 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

最新文章

  1. async/await Task Timeout
  2. FZU月赛20160416 ABEF
  3. php 文件读取
  4. 基于IHttpAsyncHandler的UDP收发器
  5. MongoDB的安全性
  6. CSS- 兼容样式记录
  7. MySQL中多表删除方法(转载)
  8. 修改XPMenu让ToolButton在Down=True时正确显示
  9. uboot启动阶段修改启动参数方法及分析
  10. c++内存对齐 转载
  11. Vue浅谈
  12. ABP公共结构
  13. Linux使用踩坑记
  14. Android远程桌面助手(B1185)for Android P开发者预览版
  15. HDFS组件性能调优:数据平衡
  16. jar包添加到maven本地仓库
  17. QWaitCondition 的思考2
  18. Ubuntu 16.04+GTX970 黑屏无法安装解决方法
  19. 2015-2016 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2015)
  20. js模拟下拉框

热门文章

  1. Flutter数据库Sqflite之增删改查
  2. 记华硕小主机装xp并给nokia e7-00 刷机
  3. Java 键盘输入数字(空格隔开) 将数字存入数组
  4. 0x11栈之Editor
  5. macbook突然没有声音了
  6. office 2019 下载地址
  7. 全景拍摄,全景视频拍摄,全景VR拍摄,VR全景拍摄,360全景图片拍摄
  8. 大数据Hadoop——HDFS Shell操作
  9. java的hello world
  10. Keras + LSTM 做回归demo