Oracle中中文、数字,英文混杂形式的字段进行排序的方法
2016-05-09 09:17
627 查看
http://blog.csdn.net/p451933505/article/details/9272257
对Oracle中中文、数字、英文混杂形式的字段进行排序的方法:
例如:
order by NLSSORT(字段名,'NLS_SORT = SCHINESE_PINYIN_M'), to_number(translate(字段名, '0123456789' || 字段名, '0123456789'))
NLSSORT() 函数:
可以使用NLSSORT()函数可以改变Oralce 对汉字的排序规则,排序规则如下(前三条对简体中文进行排序,后两条对繁体中文进行排序):
1. SCHINESE_RADICAL_M
简体中文按照第一顺序是“部首”、第二顺序是“笔画数”进行排序。
2. SCHINESE_STROKE_M
简体中文按照第一顺序“笔画数”、是第二顺序是“部首”进行排序。
3. SCHINESE_PINYIN_M
简体中文按照拼音进行排序。上例中即对简体汉字按照拼音进行排序。
4. TCHINESE_RADICAL_M
繁体中文按照第一顺序是“部首”、第二顺序是“笔画数”进行排序。
5. TCHINESE_STROKE_M
繁体中文按照第一顺序是“笔画数”、第二顺序是“部首”进行排序。
TRANSLATE() 函数:
用法:将char中出现在from中的每个字符替换为to中的相应字符,若from比to字符串长,那么在from中比to中多出的字符将会被删除。三个参数中有一个是空,返回值也将是空值。
select TRANSLATE('例1213','0123456789'||'例1213','0123456789') as RESULT from dual;
RESULT
------------
1213
分析:该语句要将 char--'例1213' 中出现在 from--'0123456789例1213' 中的字符替换为 to--'0123456789' 中的字符,根据 from、to 的对应关系,将 char 中的 0替换成0、1替换成1、...9替换成9,即 char 中的数字不变,又 from 比 to 长,则 from 中比 to 中多出的字符将被删除,即删除 char 中的汉字。
对Oracle中中文、数字、英文混杂形式的字段进行排序的方法:
例如:
order by NLSSORT(字段名,'NLS_SORT = SCHINESE_PINYIN_M'), to_number(translate(字段名, '0123456789' || 字段名, '0123456789'))
NLSSORT() 函数:
可以使用NLSSORT()函数可以改变Oralce 对汉字的排序规则,排序规则如下(前三条对简体中文进行排序,后两条对繁体中文进行排序):
1. SCHINESE_RADICAL_M
简体中文按照第一顺序是“部首”、第二顺序是“笔画数”进行排序。
2. SCHINESE_STROKE_M
简体中文按照第一顺序“笔画数”、是第二顺序是“部首”进行排序。
3. SCHINESE_PINYIN_M
简体中文按照拼音进行排序。上例中即对简体汉字按照拼音进行排序。
4. TCHINESE_RADICAL_M
繁体中文按照第一顺序是“部首”、第二顺序是“笔画数”进行排序。
5. TCHINESE_STROKE_M
繁体中文按照第一顺序是“笔画数”、第二顺序是“部首”进行排序。
TRANSLATE() 函数:
用法:将char中出现在from中的每个字符替换为to中的相应字符,若from比to字符串长,那么在from中比to中多出的字符将会被删除。三个参数中有一个是空,返回值也将是空值。
select TRANSLATE('例1213','0123456789'||'例1213','0123456789') as RESULT from dual;
RESULT
------------
1213
分析:该语句要将 char--'例1213' 中出现在 from--'0123456789例1213' 中的字符替换为 to--'0123456789' 中的字符,根据 from、to 的对应关系,将 char 中的 0替换成0、1替换成1、...9替换成9,即 char 中的数字不变,又 from 比 to 长,则 from 中比 to 中多出的字符将被删除,即删除 char 中的汉字。
相关文章推荐
- oracle中的exists 和not exists 用法详解
- Windows 下安装 Oracle 12c 教程
- Oracle的Sequence详解以及Hibernate如何使用Oracle的Sequence
- 自动备份windows系统下Oracle数据库文件(dmp)
- Oracle存储过程的使用
- Oracle AWR TOP5记录
- 用oracle语句计算百分比
- Oracle数据库-SQL及操作符
- 使用DOS打Oracle代码技巧
- oracle读写文件--利用utl_file包对磁盘文件的读写操作
- Oracle数据库-表管理
- oracle免安装客户端设置
- Oracle如何实现多个字段去重
- JdbcTemplate下访问Oracle数据库插入数据时返回序列增长的主键
- 安装oracle和plsql时的一点感想
- Navicat备份远程Oracle数据库到本地
- 4. Oracle PL/SQL语言及编程
- Oracle死锁解决
- centos7系统安装oracle11g指南
- oracle创建表空间