1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > oracle 提取中文字符串拼音首字母函数 拼音简码提取函数

oracle 提取中文字符串拼音首字母函数 拼音简码提取函数

时间:2019-09-03 01:40:28

相关推荐

oracle 提取中文字符串拼音首字母函数 拼音简码提取函数

从别的数据库里拿到的获取拼音简码的函数,觉得挺有意思的,具体的思路就是,通过oracle的NLSSORT函数对汉字按照拼音排序,然后根据汉字的区间返回对应的首字母。具体实现效果和代码如下。

希望能帮助到你

/* 获取拼音简码函数 */CREATE OR REPLACE FUNCTION GET_PYJM (P_NAME IN VARCHAR2)RETURN VARCHAR2ASV_COMPARE VARCHAR2 (100);V_RETURN VARCHAR2 (4000);BEGINDECLAREFUNCTION F_NLSSORT (P_WORD IN VARCHAR2)RETURN VARCHAR2ASBEGINRETURN NLSSORT (P_WORD, 'NLS_SORT=SCHINESE_PINYIN_M');END;BEGINFOR I IN 1 .. LENGTH (P_NAME)LOOPV_COMPARE := F_NLSSORT (SUBSTR (P_NAME, I, 1));IFV_COMPARE >= F_NLSSORT ('吖')AND V_COMPARE <= F_NLSSORT ('驁')THENV_RETURN := V_RETURN || 'A';ELSIFV_COMPARE >= F_NLSSORT ('八')AND V_COMPARE <= F_NLSSORT ('簿')THENV_RETURN := V_RETURN || 'B';ELSIFV_COMPARE >= F_NLSSORT ('嚓')AND V_COMPARE <= F_NLSSORT ('錯')THENV_RETURN := V_RETURN || 'C';ELSIFV_COMPARE >= F_NLSSORT ('咑')AND V_COMPARE <= F_NLSSORT ('鵽')THENV_RETURN := V_RETURN || 'D';ELSIFV_COMPARE >= F_NLSSORT ('妸')AND V_COMPARE <= F_NLSSORT ('樲')THENV_RETURN := V_RETURN || 'E';ELSIFV_COMPARE >= F_NLSSORT ('发')AND V_COMPARE <= F_NLSSORT ('猤')THENV_RETURN := V_RETURN || 'F';ELSIFV_COMPARE >= F_NLSSORT ('旮')AND V_COMPARE <= F_NLSSORT ('腂')THENV_RETURN := V_RETURN || 'G';ELSIFV_COMPARE >= F_NLSSORT ('妎')AND V_COMPARE <= F_NLSSORT ('夻')THENV_RETURN := V_RETURN || 'H';ELSIFV_COMPARE >= F_NLSSORT ('丌')AND V_COMPARE <= F_NLSSORT ('攈')THENV_RETURN := V_RETURN || 'J';ELSIFV_COMPARE >= F_NLSSORT ('咔')AND V_COMPARE <= F_NLSSORT ('穒')THENV_RETURN := V_RETURN || 'K';ELSIFV_COMPARE >= F_NLSSORT ('垃')AND V_COMPARE <= F_NLSSORT ('擽')THENV_RETURN := V_RETURN || 'L';ELSIFV_COMPARE >= F_NLSSORT ('嘸')AND V_COMPARE <= F_NLSSORT ('椧')THENV_RETURN := V_RETURN || 'M';ELSIFV_COMPARE >= F_NLSSORT ('拏')AND V_COMPARE <= F_NLSSORT ('瘧')THENV_RETURN := V_RETURN || 'N';ELSIFV_COMPARE >= F_NLSSORT ('筽')AND V_COMPARE <= F_NLSSORT ('漚')THENV_RETURN := V_RETURN || 'O';ELSIFV_COMPARE >= F_NLSSORT ('妑')AND V_COMPARE <= F_NLSSORT ('曝')THENV_RETURN := V_RETURN || 'P';ELSIFV_COMPARE >= F_NLSSORT ('七')AND V_COMPARE <= F_NLSSORT ('裠')THENV_RETURN := V_RETURN || 'Q';ELSIFV_COMPARE >= F_NLSSORT ('亽')AND V_COMPARE <= F_NLSSORT ('鶸')THENV_RETURN := V_RETURN || 'R';ELSIFV_COMPARE >= F_NLSSORT ('仨')AND V_COMPARE <= F_NLSSORT ('蜶')THENV_RETURN := V_RETURN || 'S';ELSIFV_COMPARE >= F_NLSSORT ('侤')AND V_COMPARE <= F_NLSSORT ('籜')THENV_RETURN := V_RETURN || 'T';ELSIFV_COMPARE >= F_NLSSORT ('屲')AND V_COMPARE <= F_NLSSORT ('鶩')THENV_RETURN := V_RETURN || 'W';ELSIFV_COMPARE >= F_NLSSORT ('夕')AND V_COMPARE <= F_NLSSORT ('鑂')THENV_RETURN := V_RETURN || 'X';ELSIFV_COMPARE >= F_NLSSORT ('丫')AND V_COMPARE <= F_NLSSORT ('韻')THENV_RETURN := V_RETURN || 'Y';ELSIFV_COMPARE >= F_NLSSORT ('帀')AND V_COMPARE <= F_NLSSORT ('咗')THENV_RETURN := V_RETURN || 'Z';END IF;END LOOP;RETURN V_RETURN;END;END;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。