日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle中文排序 NLSSORT

發布時間:2024/1/8 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle中文排序 NLSSORT 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天發現了個挺有意思的函數:NLSSORT,發現能給中文按拼音、筆畫、部首排序,遂查了下相關資料,結果如下:


Oracle 9i開始,新增了按照拼音、部首、筆畫排序功能。

????通過設置NSL_SORT值來實現:

????SCHINESE_RADICAL_M 按照部首(第一順序)、筆劃(第二順序)排序

????SCHINESE_STROKE_M 按照筆劃(第一順序)、部首(第二順序)排序

????SCHINESE_PINYIN_M 按照拼音排序


實現中文排序有兩種常見方式:

  • session級

    ALTER SESSION SET NLS_SORT='XXX';

    此結果影響整個session。

  • sql級

    SELECT * FROM TABLE_XXX ORDER BY NLSSORT(字段名, 'NLS_SORT=XXX');


  • 例:

    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


    轉載于:https://blog.51cto.com/baser/2139625

    總結

    以上是生活随笔為你收集整理的Oracle中文排序 NLSSORT的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。