之前写过一篇 Oracle中对数字加汉字的排序以及REGEXP_SUBSTR介绍

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

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

比方:

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

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

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

第一步:截取汉字

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

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

第二步:截取数字

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

第三步:ORDER BY排序

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

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

作者:itmyhome

Oracle中对数字加汉字的排序(完好)的更多相关文章

  1. Oracle中对数字加汉字的排序

    需求:有一列NAME, varchar2类型,内容如下 以上就是已经按order by name进行排序的,但不是我们想要的结果 现在需要只按数字进行排序 第一步:抽取数字由于数字有是一位的有是两位的 ...

  2. oracle 中日期的加减

    oracle 中日期的加减 加法   select sysdate,add_months(sysdate,12) from dual;        --加1年 select sysdate,add_ ...

  3. 关于oracle中的数字类型

    1.关于number类型. 以下是从其文档中摘录出的一句话: p is the precision, or the total number of significant decimal digits ...

  4. Oracle中的日期加减

    加法   select sysdate,add_months(sysdate,12) from dual;        --加1年 select sysdate,add_months(sysdate ...

  5. Oracle使用NLSSORT函数实现汉字的排序

    1).按拼音首字母排序 SELECT * FROM T_TABLE ORDER BY NLSSORT(NAME, 'NLS_SORT=SCHINESE_PINYIN_M'); 2).按笔画排序SELE ...

  6. (数组)对数组中的数字加1(plus one)

    题目:https://www.nowcoder.com/practice/4d135ddb2e8649ddb59ee7ac079aa882?tpId=46&tqId=29111&tPa ...

  7. Oracle中中文、数字,英文混杂形式的字段进行排序的方法

    http://blog.csdn.net/p451933505/article/details/9272257 对Oracle中中文.数字.英文混杂形式的字段进行排序的方法: 例如: order by ...

  8. Oracle字符串中包含数字、特殊符号的排序

    问题描述: 某小区,需要按照小区.楼栋.单元号.房间号进行排序,但是按照地址描述排序时,因为字符串中包含数字,所以造成了如下的结果, 1号楼之后应该是2号楼,但是查询结果却是10号楼 . 尝试解决 使 ...

  9. 关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其他位数)

    关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其... 方法一:使用to_char的fm格式,即: to_char(round(data.amount,2),'FM9999 ...

随机推荐

  1. CentOS内核优化提示:cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: 没有那个文件或目录

    临时解决,重启失效 modprobe br_netfilter 为了开机加载上面这个模块 cat > /etc/rc.sysinit << EOF #!/bin/bash for f ...

  2. .NET开源了,Visual Studio开始支持 Android 和 iOS 编程并自带Android模拟器

    北京时间今天凌晨的大会上,多少程序员的假想成为现实..NET 开源,集成 Clang 和 LLVM 并且自带 Android 模拟器,这意味着 Visual Studio 这个当下最好没有之一的 ID ...

  3. HDU 4816 Bathysphere (2013长春现场赛D题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4816 2013长春区域赛的D题. 很简单的几何题,就是给了一条折线. 然后一个矩形窗去截取一部分,求最 ...

  4. Jquery DataTable基本使用

    1,首先需要引用下面两个文件 <link rel="stylesheet" href="https://cdn.datatables.net/1.10.16/css ...

  5. 怎样用javascript获取UUID

    因为javascript是单线程的东西,所以我们放一个累加变量作为id也不会反复. 但事实上javascript本身提供了能够获得唯一id的东东.还记得setTimeout()方法会返回一个唯一id用 ...

  6. 基于设备树的TQ2440触摸屏驱动移植

    平台 开发板:tq2440 内核:Linux-4.9 u-boot:u-boot-2015.04   概述 之前移植了LCD驱动,下面继续移植触摸屏驱动,然后将tslib也移植上去. 正文 一.移植触 ...

  7. 使用HttpClient对ASP.NET Web API服务实现增删改查

    本篇体验使用HttpClient对ASP.NET Web API服务实现增删改查. 创建ASP.NET Web API项目 新建项目,选择"ASP.NET MVC 4 Web应用程序&quo ...

  8. C语言控制结构

    C语言流程控制 一.流程控制结构 (1)顺序结构:按书写顺序执行每一条语句. (2)选择结构:对给定的条件进行判断,根据判断结果决定执行哪一段代码. (3)循环结构:在给定条件成立的情况下,反复执行某 ...

  9. 用UICollectionView实现无限轮播图

    用UICollectionView实现无限轮播图 效果 源码 https://github.com/YouXianMing/Animations 细节

  10. [UI] 精美UI界面欣赏[13]

    精美UI界面欣赏