SQL 拼音搜索

【个人收藏】

1.将汉字转拼音首字母自定义 Function

1drop function F_GET_PINYIN 2 3CREATE OR REPLACE FUNCTION F_GET_PINYIN(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS 4V_COMPARE VARCHAR2(50); 5V_RETURN VARCHAR2(100); 6 7FUNCTION F_NLSSORT(P_WORD IN VARCHAR2) RETURN VARCHAR2 AS 8BEGIN 9RETURN NLSSORT(P_WORD, 'NLS_SORT=SCHINESE_PINYIN_M'); 10END; 11BEGIN 12FOR I IN 1..LENGTH(P_NAME) LOOP 13V_COMPARE := F_NLSSORT(SUBSTR(P_NAME, I, 1)); 14IF V_COMPARE >= F_NLSSORT(' 吖 ') AND V_COMPARE <= F_NLSSORT('驁 ') THEN 15V_RETURN := V_RETURN || 'a'; 16ELSIF V_COMPARE >= F_NLSSORT('八 ') AND V_COMPARE <= F_NLSSORT('簿 ') THEN 17V_RETURN := V_RETURN || 'b'; 18ELSIF V_COMPARE >= F_NLSSORT('嚓 ') AND V_COMPARE <= F_NLSSORT('錯 ') THEN 19V_RETURN := V_RETURN || 'c'; 20ELSIF V_COMPARE >= F_NLSSORT('咑 ') AND V_COMPARE <= F_NLSSORT('鵽 ') THEN 21V_RETURN := V_RETURN || 'd'; 22ELSIF V_COMPARE >= F_NLSSORT('妸 ') AND V_COMPARE <= F_NLSSORT('樲 ') THEN 23V_RETURN := V_RETURN || 'e'; 24ELSIF V_COMPARE >= F_NLSSORT('发 ') AND V_COMPARE <= F_NLSSORT('猤 ') THEN 25V_RETURN := V_RETURN || 'f'; 26ELSIF V_COMPARE >= F_NLSSORT('旮 ') AND V_COMPARE <= F_NLSSORT('腂 ') THEN 27V_RETURN := V_RETURN || 'g'; 28ELSIF V_COMPARE >= F_NLSSORT('妎 ') AND V_COMPARE <= F_NLSSORT('夻 ') THEN 29V_RETURN := V_RETURN || 'h'; 30ELSIF V_COMPARE >= F_NLSSORT('丌 ') AND V_COMPARE <= F_NLSSORT('攈 ') THEN 31V_RETURN := V_RETURN || 'j'; 32ELSIF V_COMPARE >= F_NLSSORT('咔 ') AND V_COMPARE <= F_NLSSORT('穒 ') THEN 33V_RETURN := V_RETURN || 'k'; 34ELSIF V_COMPARE >= F_NLSSORT('垃 ') AND V_COMPARE <= F_NLSSORT('擽 ') THEN 35V_RETURN := V_RETURN || 'l'; 36ELSIF V_COMPARE >= F_NLSSORT('嘸 ') AND V_COMPARE <= F_NLSSORT('椧 ') THEN 37V_RETURN := V_RETURN || 'm'; 38ELSIF V_COMPARE >= F_NLSSORT('拏 ') AND V_COMPARE <= F_NLSSORT('瘧 ') THEN 39V_RETURN := V_RETURN || 'n'; 40ELSIF V_COMPARE >= F_NLSSORT('筽 ') AND V_COMPARE <= F_NLSSORT('漚 ') THEN 41V_RETURN := V_RETURN || 'o'; 42ELSIF V_COMPARE >= F_NLSSORT('妑 ') AND V_COMPARE <= F_NLSSORT('曝 ') THEN 43V_RETURN := V_RETURN || 'p'; 44ELSIF V_COMPARE >= F_NLSSORT('七 ') AND V_COMPARE <= F_NLSSORT('裠 ') THEN 45V_RETURN := V_RETURN || 'q'; 46ELSIF V_COMPARE >= F_NLSSORT('亽 ') AND V_COMPARE <= F_NLSSORT('鶸 ') THEN 47V_RETURN := V_RETURN || 'r'; 48ELSIF V_COMPARE >= F_NLSSORT('仨 ') AND V_COMPARE <= F_NLSSORT('蜶 ') THEN 49V_RETURN := V_RETURN || 's'; 50ELSIF V_COMPARE >= F_NLSSORT('侤 ') AND V_COMPARE <= F_NLSSORT('籜 ') THEN 51V_RETURN := V_RETURN || 't'; 52ELSIF V_COMPARE >= F_NLSSORT('屲 ') AND V_COMPARE <= F_NLSSORT('鶩 ') THEN 53V_RETURN := V_RETURN || 'w'; 54ELSIF V_COMPARE >= F_NLSSORT('夕 ') AND V_COMPARE <= F_NLSSORT('鑂 ') THEN 55V_RETURN := V_RETURN || 'x'; 56ELSIF V_COMPARE >= F_NLSSORT('丫 ') AND V_COMPARE <= F_NLSSORT('韻 ') THEN 57V_RETURN := V_RETURN || 'y'; 58ELSIF V_COMPARE >= F_NLSSORT('帀 ') AND V_COMPARE <= F_NLSSORT('咗 ') THEN 59V_RETURN := V_RETURN || 'z'; 60END IF; 61END LOOP; 62RETURN V_RETURN; 63END; 64 65select f_get_pinyin('中国') as 拼音码 from dual;

2

3

4

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Android So动态加载 优雅实现与原理分析

背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我

PHP利用ICU扩展intl快速实现汉字转拼音以及按拼音首字母分组排序

ICU(InternationalComponentsforUnicode)里提供了transliterator(直译器),可以很方便把其他语言(比如简体中文)转为拉丁文表示:http://cn2.php.net/manual/zh/transliterator.transliterate.phpTransliterator:all

oracle函数

单行函数SQL字符函数SQLselectlower('HelloWorld')转小写,upper('HelloWorld')转大写,initcap('helloworld')首字母大写 2 fromdual;转小写   转大写   首字母大写