SELECT *
FROM (SELECT '张三' NAME
FROM DUAL
UNION ALL
SELECT '李四' NAME
FROM DUAL
UNION ALL
SELECT '王五' NAME FROM DUAL)
ORDER BY NLSSORT(NAME, 'NLS_SORT=SCHINESE_PINYIN_M');
第一个参数是需要排序的字段。
第二个参数值可选下列字符串
SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序
SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
SCHINESE_PINYIN_M 按照拼音排序,系统的默认排序方式为拼音排序
SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
SCHINESE_PINYIN_M 按照拼音排序,系统的默认排序方式为拼音排序