Oracle中可以按照按照拼音、部首、笔画排序,可以通过设置NLS_SORT值来完成对应的排序:


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

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

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


以下为按照拼音进行排序的SQL:


select * from user_folder order by nlssort(foldername,'NLS_SORT=SCHINESE_PINYIN_M') desc;


在Mysql中,如果table的字符集是gbk,则默认的排序就是按照拼音来排的:


select * from user_folder order by foldername desc;


如果table的字符集是utf-8的,则默认的排序对中文来说是乱的,我们可以用convert来实现中文排序:


select * from test_utf8 order by convert(foldername using gbk);