Chinaunix首页 | 论坛 | 博客
  • 博客访问: 66873
  • 博文数量: 12
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-06 17:41
文章分类

全部博文(12)

文章存档

2010年(2)

2008年(4)

2007年(6)

我的朋友

分类: Oracle

2008-03-21 10:50:44

Oracle9i之前,中文是按照二进制编码进行排序的。
在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值
SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序
SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
SCHINESE_PINYIN_M 按照拼音排序
修改ORACLE字段的默认排序方式:
按拼音: alter session set nls_sort = SCHINESE_PINYIN_M;
按笔画:alter session set nls_sort = SCHINESE_STROKE_M;
按偏旁:alter session set nls_sort = NLS_SORT=SCHINESE_RADICAL_M;
 
 
select * from 表 order by nlssort(列,'NLS_SORT=排序类型')
列子:
 
select a.* from TEMPTABLE a order by nlssort(a.name,'NLS_SORT=SCHINESE_PINYIN_M')
查询表TEMPTABLE, 按列名name中文拼音升序排序
 
阅读(652) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~