ORACLE的order by中文排序
来源:互联网 发布:python 当前日期时间 编辑:程序博客网 时间:2024/05/17 23:51
在使用order by排序的时候,出现如下情况:
印象中中文排序应该默认是按照拼音排序的,为何“鑫”会排在“中”的后面呢?猜想order by是不是根据对应字符的ASCII码排的呢,因此列出了对应的ASCII,如下:
由此基本可以断定,确实是通过ASCII的大小来排序的,这也解释了为什么数字会排在字母之前,字母为什么会排在汉字之前的现象。但是为什么会出现汉字默认是通过拼音排序的错觉呢,于是查了一下汉字的编码规则,有提到如下一句:
“一级汉字,是最常用的汉字,按汉语拼音字母顺序排列,共3755个;二级汉字,属于次常用汉字,按偏旁部首的笔划顺序排列,共3008个”
可知,如果排序的汉字都是一级汉字的话,确实是按照拼音顺序排列的,如果涉及到二级汉字,就不一定了。
但是,如果就是要让汉字通过拼音顺序排序呢,可以通过如下方式:
按照拼音顺序
ORDER BY nlssort(NAME, 'NLS_SORT=SCHINESE_PINYIN_M')
ORDER BY nlssort(NAME, 'NLS_SORT=SCHINESE_PINYIN_M'),nlssort(address, 'NLS_SORT=SCHINESE_PINYIN_M')实现同时排序
按照部首顺序
ORDER BY nlssort(NAME, 'NLS_SORT=SCHINESE_RADICAL_M')
按照笔画顺序
ORDER BY nlssort(NAME, 'NLS_SORT=SCHINESE_STROKE_M')
1 0
- ORACLE的order by中文排序
- Oracle的order by 中文
- oracle 数据库 order by 排序的使用
- oracle order by排序总结
- ORACLE ORDER BY 排序规则
- oracle order by 拼音排序
- ORACLE中排序ORDER BY
- oracle 的伪列rownum,排序order by分析
- oracle 的伪列rownum,排序order by分析
- oracle的order by排序中空字符串处理方法
- sqlserver 和Oracle中 order by(排序)的区别
- sqlserver 和Oracle中 order by(排序)的区别
- oracle的order by排序中空字符串处理方法
- oracle中如何更改order by的默认排序?
- mysql order by 中文排序 错乱问题
- Mysql中文排序order by covert
- 数据的排序:(order by)
- oracle 无order by , 默认排序问题
- android 动态显示状态栏和导航栏
- 寡谈自动化测试(Selenium)
- 解决 ORA-21561: OID generation failed
- 解决Android拍照保存在系统相册不显示的问题
- [有奖活动]51Testing2016软件测试现状调查活动!
- ORACLE的order by中文排序
- sqlite3命令大全
- spring的BeanUtils.copyProperties用法
- LLDB调试神器之Chisel的安装
- Android 动画详解之Tween动画
- 前端学习之为边框添加阴影
- jquery中ajax请求分类
- 二叉树系列---层次遍历二叉树
- LeetCode 318. Maximum Product of Word Lengths 题解(C++)