吼吼找到解决办法了select t.username from com_userlist t order by nlssort(username,'NLS_SORT=SCHINESE_PINYIN_M');
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');
怎么编译老通不过啊,我用的paradox数据库 query1.Close; query1.SQL.Clear; query1.SQL.add('select * from tb'); query1.SQL.add('order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M')'); query1.ExecSQL;错误提示:[Error] Unit4.pas(1505): ')' expected but identifier 'NLS_SORT' found
from com_userlist t
order by nlssort(username,'NLS_SORT=SCHINESE_PINYIN_M');
在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');
query1.SQL.Clear;
query1.SQL.add('select * from tb');
query1.SQL.add('order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M')');
query1.ExecSQL;错误提示:[Error] Unit4.pas(1505): ')' expected but identifier 'NLS_SORT' found