博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle中对数字加汉字的排序(完好)
阅读量:7002 次
发布时间:2019-06-27

本文共 447 字,大约阅读时间需要 1 分钟。

之前写过一篇

后来在开发的过程中又遇到相似问题。数据不一样了,按之前的使用方法是不适用的。

之前的是数字在前汉字在后,最基本的差别是数字没有反复的,而如今的数据中数字是有反复的

比方:

玫瑰园1楼玫瑰园2楼兴帝家园1楼兴帝家园2楼

假设是仅仅抽取数字进行排序 会造成两个1楼在前 两个2楼在后

而想要的结果是先按同样的名字排序 再按楼号排序

第一步:截取汉字

仅仅截取正則表達式中汉字首次出现的位置(下同)

REGEXP_SUBSTR(name, '[[:alpha:]]+')

第二步:截取数字

REGEXP_SUBSTR(name, '[0-9]+')

第三步:ORDER BY排序

先按汉字进行排序,同样的再按数字排序

SELECT * FROM ADDRESS_TREEorder by REGEXP_SUBSTR(name, '[[:alpha:]]+'), --汉字排序cast(REGEXP_SUBSTR(name, '[0-9]+') as int);   --数字排序

这里写图片描写叙述

作者:

你可能感兴趣的文章
C#和JAVA中编写事务代码
查看>>
How to build CppCMS 1.x.x
查看>>
LeetCode 208. Implement Trie (Prefix Tree)
查看>>
vuejs组件交互 - 03 - vuex状态管理实现组件交互
查看>>
C#多线程
查看>>
SQL Server 2017 安装过程中的一点说明(有点意思)
查看>>
Nginx+Uwsgi部署Django项目
查看>>
ubuntu 12.04 安装 codeblock 12.11
查看>>
Qt编写的RTSP播放器+视频监控(vlc版本)
查看>>
AspectJ的拓展学习--织入顺序和通知参数指定
查看>>
使用CentOS7卸载自带jdk安装自己的JDK1.8
查看>>
[Android Pro] Android P版本 新功能介绍和兼容性处理(三)Android Studio 3.0 ~ 3.2 其他特性...
查看>>
QT中显示gif图片方法
查看>>
工程投诉过程中各建设主管理部门联系人表
查看>>
一起谈.NET技术,关于Expression Tree和IL Emit的所谓的"性能差别"
查看>>
CGI, mod_perl, PHP, JSP性能比较
查看>>
史上最全面的面试资料(包含所有IT大公司)
查看>>
密码库 链接
查看>>
ZOJ 3505. Yet Another Set of Numbers 解题报告
查看>>
mysql innodb_double_write特性
查看>>