Oracle 中文排序 NLSSORT NLS_SORT
发布时间:2020-12-12 13:30:51 所属栏目:百科 来源:网络整理
导读:今天发现了个挺有意思的函数:NLSSORT,发现能给中文按拼音、笔画、部首排序,遂查了下相关资料,结果如下: Oracle 9i开始,新增了按照拼音、部首、笔画排序功能。 ????通过设置NSL_SORT值来实现: ???? SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二
今天发现了个挺有意思的函数:NLSSORT,发现能给中文按拼音、笔画、部首排序,遂查了下相关资料,结果如下:
Oracle 9i开始,新增了按照拼音、部首、笔画排序功能。 ????通过设置NSL_SORT值来实现: ????SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序 ????SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序 ????SCHINESE_PINYIN_M 按照拼音排序 实现中文排序有两种常见方式:
例: CREATE?TABLE?test_sort(NAME?VARCHAR2(50)); INSERT?INTO?test_sort(NAME)?VALUES('中国'); INSERT?INTO?test_sort(NAME)?VALUES('山西'); INSERT?INTO?test_sort(NAME)?VALUES('北京'); INSERT?INTO?test_sort(NAME)?VALUES('陕西'); INSERT?INTO?test_sort(NAME)?VALUES('河北'); INSERT?INTO?test_sort(NAME)?VALUES('湖北'); INSERT?INTO?test_sort(NAME)?VALUES('河南'); 默认排序结果: 默认排序以BINARY排序,即二进制排序 SQL>?SELECT?*?FROM?test_sort?ORDER?BY?NAME; NAME -------------------------------------------------- 中国 北京 山西 河北 河南 湖北 陕西 7?rows?selected 拼音排序结果: SQL>?SELECT?*?FROM?test_sort?ORDER?BY?NLSSORT(NAME,?'NLS_SORT=SCHINESE_PINYIN_M'); NAME -------------------------------------------------- 北京 河北 河南 湖北 山西 陕西 中国 7?rows?selected 笔画排序结果: SQL>?SELECT?*?FROM?test_sort?ORDER?BY?NLSSORT(NAME,?'NLS_SORT=SCHINESE_STROKE_M'); NAME -------------------------------------------------- 山西 中国 北京 河北 河南 陕西 湖北 7?rows?selected 部首排序结果: SQL>?SELECT?*?FROM?test_sort?ORDER?BY?NLSSORT(NAME,?'NLS_SORT=SCHINESE_RADICAL_M'); NAME -------------------------------------------------- 中国 北京 山西 河北 河南 湖北 陕西 7?rows?selected (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |