您的位置:首页 > 数据库 > Oracle

Oracle下的中文排序

2010-04-21 13:12 330 查看
alter session set nls_sort='schinese_pinyin_m';

select * from dept order by
nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');

Oracle9i之前,中文是按照二进制编码进行排序的。

在oracle9i中新增了按照拼音、部首、笔画
排序功能。设置NLS_SORT值

SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序

SCHINESE_STROKE_M
按照笔划(第一顺序)、部首(第二顺序)排序

SCHINESE_PINYIN_M 按照拼音排序,系统的默认排序方式为拼音排序


例如下:

表名为 dept ,其中name字段是中文,下面分别实现按照单位名称的笔划、部首和拼音排序。

1: //按照笔划排序

2:
select * from dept order by
nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');

3: //按照部首排序

4: select
* from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');

5:
//按照拼音排序,此为系统的默认排序方式

6: select * from dept order by
nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');
注意,该
SQL指令并非标准指令,在SQLServer下面的实现方式并不相同。

 

转自:http://blog.chinaunix.net/u/28618/showart_464260.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle sqlserver session sql