首 页IT知识库翔宇问吧收藏内容
当前位置:翔宇亭IT乐园IT知识库数据库Oracle

Oracle中的中文排序方式

减小字体 增大字体 作者:不详  来源:不详  发布时间:2010-02-09 11:02:00

  5.  开始测试
      
发现三个查询语句返回的结果一致
  SQL> select * from player order by    nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');
  ID NAME
  ---------- --------------------
  4 一
  15 十
  7 四
  10 七
  9 六
  8 五
  6 三
  3 笔画输入法
  13 八2
  14 九1
  12 八1
  5 二
  1 中文
  17 下午啦
  2 中文拼音
  16 测试啊
  20 八千米死亡线
  17 rows selected.

  SQL> select * from player order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');
  ID NAME
  ---------- --------------------
  4 一
  15 十
  7 四
  10 七
  9 六
  8 五
  6 三
  3 笔画输入法
  13 八2
  14 九1
  12 八1
  5 二
  1 中文
  17 下午啦
  2 中文拼音
  16 测试啊
  20 八千米死亡线
  17 rows selected.
  SQL> select * from player order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');
  ID NAME
  ---------- --------------------------------
  4 一
  15 十
  7 四
 10 七
  9 六
  8 五
  6 三
  3 笔画输入法
  13 八2
  14 九1
  12 八1
  5 二
  1 中文
  17 下午啦
  2 中文拼音
  16 测试啊
  20 八千米死亡线
  17 rows selected.
  囧,疑似碰上bug,切换到10gR2下看看

  SQL> select * from v$version;
  BANNER
  ----------------------------------------------------------------
  Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
  PL/SQL Release 10.2.0.1.0 - Production
  CORE    10.2.0.1.0    Production
  TNS for Linux: Version 10.2.0.1.0 - Production
  NLSRTL Version 10.2.0.1.0 - Production
  SQL> select * from player order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');

  ID NAME
  12 八1
  13 八2
  20 八千米死亡线
  3 笔画输入法
  16 测试啊
  5 二
  14 九1
  9 六
  10 七
  6 三
  15 十
  7 四
     8 五
  17 下午啦
  4 一
  1 中文
  2 中文拼音
  17 rows selected

  SQL> select * from player order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');
  ID NAME
  ---------- ------------------------------
  4 一
  10 七
  5 二
  14 九1
  12 八1
  13 八2
  20 八千米死亡线
  15 十
  6 三
  17 下午啦
  8 五
  1 中文
  2 中文拼音
  9 六
  7 四
  16 测试啊
  3 笔画输入法
  21 测试服务器
  18 rows selected

  SQL> select * from player order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');
  ID NAME
  ---------- ------------------------------
  4 一
  10 七
  5 二
  6 三
  17 下午啦
  8 五
  1 中文
  2 中文拼音
  14 九1
  12 八1
  13 八2
  20 八千米死亡线
  9 六
  15 十
  7 四
  16 测试啊
  3 笔画输入法
  21 测试服务器
  18 rows selected
  SQL>

  这个结果似乎比较符合预期结果:
  NLS_SORT=SCHINESE_RADICAL_M  按照部首排序
  NLS_SORT=SCHINESE_STROKE_M 按照笔画排序
  NLS_SORT=SCHINESE_PINYIN_M 按照拼音排序

上一页  [1] [2] 

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

Tags:Oracle 排序

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2022 biye5u.com. All Rights Reserved.