Oracle中根据中文获取拼音首字母
前言
在软件中方便用户查找信息时,都会用到输拼音首字母的简写快速过滤,所以一般我们在Oracle的表中会加上一列助记符列,今天我们就看看将中文怎么转换为拼音首字母。
实现方式
通过oracle的NLSSORT函数对汉字按照拼音排序。
然后根据汉字的区间返回对应的首字母。
函数代码
/* 获取拼音简码函数 */
CREATE OR REPLACE FUNCTION GET_PYJM (P_NAME IN VARCHAR2)RETURN VARCHAR2
ASV_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));IF V_COMPARE >= F_NLSSORT ('吖')AND V_COMPARE <= F_NLSSORT ('驁')THENV_RETURN := V_RETURN || 'A';ELSIF V_COMPARE >= F_NLSSORT ('八')AND V_COMPARE <= F_NLSSORT ('簿')THENV_RETURN := V_RETURN || 'B';ELSIF V_COMPARE >= F_NLSSORT ('嚓')AND V_COMPARE <= F_NLSSORT ('錯')THENV_RETURN := V_RETURN || 'C';ELSIF V_COMPARE >= F_NLSSORT ('咑')AND V_COMPARE <= F_NLSSORT ('鵽')THENV_RETURN := V_RETURN || 'D';ELSIF V_COMPARE >= F_NLSSORT ('妸')AND V_COMPARE <= F_NLSSORT ('樲')THENV_RETURN := V_RETURN || 'E';ELSIF V_COMPARE >= F_NLSSORT ('发')AND V_COMPARE <= F_NLSSORT ('猤')THENV_RETURN := V_RETURN || 'F';ELSIF V_COMPARE >= F_NLSSORT ('旮')AND V_COMPARE <= F_NLSSORT ('腂')THENV_RETURN := V_RETURN || 'G';ELSIF V_COMPARE >= F_NLSSORT ('妎')AND V_COMPARE <= F_NLSSORT ('夻')THENV_RETURN := V_RETURN || 'H';ELSIF V_COMPARE >= F_NLSSORT ('丌')AND V_COMPARE <= F_NLSSORT ('攈')THENV_RETURN := V_RETURN || 'J';ELSIF V_COMPARE >= F_NLSSORT ('咔')AND V_COMPARE <= F_NLSSORT ('穒')THENV_RETURN := V_RETURN || 'K';ELSIF V_COMPARE >= F_NLSSORT ('垃')AND V_COMPARE <= F_NLSSORT ('擽')THENV_RETURN := V_RETURN || 'L';ELSIF V_COMPARE >= F_NLSSORT ('嘸')AND V_COMPARE <= F_NLSSORT ('椧')THENV_RETURN := V_RETURN || 'M';ELSIF V_COMPARE >= F_NLSSORT ('拏')AND V_COMPARE <= F_NLSSORT ('瘧')THENV_RETURN := V_RETURN || 'N';ELSIF V_COMPARE >= F_NLSSORT ('筽')AND V_COMPARE <= F_NLSSORT ('漚')THENV_RETURN := V_RETURN || 'O';ELSIF V_COMPARE >= F_NLSSORT ('妑')AND V_COMPARE <= F_NLSSORT ('曝')THENV_RETURN := V_RETURN || 'P';ELSIF V_COMPARE >= F_NLSSORT ('七')AND V_COMPARE <= F_NLSSORT ('裠')THENV_RETURN := V_RETURN || 'Q';ELSIF V_COMPARE >= F_NLSSORT ('亽')AND V_COMPARE <= F_NLSSORT ('鶸')THENV_RETURN := V_RETURN || 'R';ELSIF V_COMPARE >= F_NLSSORT ('仨')AND V_COMPARE <= F_NLSSORT ('蜶')THENV_RETURN := V_RETURN || 'S';ELSIF V_COMPARE >= F_NLSSORT ('侤')AND V_COMPARE <= F_NLSSORT ('籜')THENV_RETURN := V_RETURN || 'T';ELSIF V_COMPARE >= F_NLSSORT ('屲')AND V_COMPARE <= F_NLSSORT ('鶩')THENV_RETURN := V_RETURN || 'W';ELSIF V_COMPARE >= F_NLSSORT ('夕')AND V_COMPARE <= F_NLSSORT ('鑂')THENV_RETURN := V_RETURN || 'X';ELSIF V_COMPARE >= F_NLSSORT ('丫')AND V_COMPARE <= F_NLSSORT ('韻')THENV_RETURN := V_RETURN || 'Y';ELSIF V_COMPARE >= F_NLSSORT ('帀')AND V_COMPARE <= F_NLSSORT ('咗')THENV_RETURN := V_RETURN || 'Z';END IF;END LOOP;RETURN V_RETURN;END;
END;
实现效果
我们直接还是在要导入的数据库中直接先查询出来,然后调用GET_PYJM的函数,上图中nvl(GET_PYJM("SupName“),"SupName")这里用法,因为SupName是我们的中文名称列,如果本身名称是英文那这个获取的数据即为空值了,所以我们直接把空值也直接查询变成SupName的列即可。
-END-
Vaccae的往期经典
OpenCV
《C++ OpenCV案例实战---卡号获取》
《C++ OpenCV案例实战---卡片截取(附代码)》
《C++ OpenCV透视变换---切换手机正面图片》
《C++ OpenCV实战---获取数量》
《C++ OpenCV实战---利用颜色分割获取数量》
Android
《Android利用SurfaceView结合科大讯飞修改语音实别UI》
《Android关于语音识别的功能实现分析(一)---结构化思维》
《Android关于语音识别的功能实现分析(二)---语义解析》
《Android根据类生成签名字符串》
《Android碎片化布局fragment的实战应用》
《Android中RecyclerView嵌套RecyclerView》
《Android里用AsyncTask后的接口回调》
.Net C#
《C#自定义特性(Attribute)讲解与实际应用》
《C#根据类生成签名字符串(附DEMO下载地址)》
《C++创建动态库C#调用》
《C#与三菱PLC(型号FX2N)串口通讯类》
数据库及其它
《Oracel存储过程写报表实战》
《Delphi轮播视频和图片程序(用于双屏显示程序)》
《SQL随机增加销售数据的脚本编写(附脚本下载地址)》
《Oracle通过ODBC连接SQL Server数据库》
长按下方二维码关注微卡智享
Oracle中根据中文获取拼音首字母相关推荐
- js 根据中文获取拼音首字母
本文来自 : https://blog.csdn.net/llf1991/article/details/79868094 版权声明:本文为博主原创文章,未经博主允许不得转载. https:// ...
- uni-app - 获取汉字拼音首字母(根据中文获取拼音首字母)
前言
- js获取中文汉字拼音首字母
使用pinyin-pro这个npm包 github: https://github.com/zh-lx/pinyin-pro 特色功能 支持汉字.词语.句子多种格式输入获取 获取拼音 获取声母 获取韵 ...
- 根据中文姓名或者其他中英文混合字符串获取拼音首字母
<?php /** * Modified by fuyong @ 2015-09-13 * 修复二分法查找方法 * 汉字拼音首字母工具类 * 注: 英文的字串:不变返回(包括数字) eg .ab ...
- php获取中文字符拼音首字母
php获取中文字符拼音首字母 function getFirstCharter($str){if(empty($str)){return ''; }$fchar=ord($str{0});if($fc ...
- JS输入中文自动获取拼音首字母大写
输入中文时,自动获取首字母大写 1.安装插件pinyin-pro npm install pinyin-pro 2.引入 import { pinyin } from 'pinyin-pro'; 3. ...
- python提取首字母的函数_Oracle提取中文字符串拼音首字母函数
通过oracle的NLSSORT函数对汉字按照拼音排序,然后根据汉字的区间返回对应的首字母. 效果1,获取拼音简码: 效果2,获取姓名首字母: 创建函数: /* 获取拼音简码函数 */ CREATE ...
- thinkphp5.1 + 汉字转拼音 + 获取拼音首字母
thinkphp5.1 + 汉字转拼音 + 获取拼音首字母 在thinkphp5.1里面引入汉字转拼音类,然后获取首字符 引入汉字转拼音类 1.在extend目录下面创建pingyin文件夹,然后新建 ...
- js中文转拼音首字母(js汉字转拼音首字母)
一.js中文转拼音首字母实现功能 汉字转拼音首字母,js中文转拼音首字母 二.js中文转拼音首字母业务场景 在写即时通讯时必然要做通讯录(联系人列表),联系人列表通常是按照拼音字母表的顺序进行展示的, ...
最新文章
- 力扣(LeetCode)刷题,简单题(第15期)
- SAP PM入门系列23 - IL07 Functional Location List (Multilevel)
- 地球是否健康,最新“诊断报告”来了
- installer,source,binary,archive 版本区别
- 开的什么源?——第三篇:草根创业
- VirtualBox 释放虚拟磁盘文件的大小
- 内嵌Tomcat的Connector对象的静态代码块
- 02-线性结构1 两个有序链表序列的合并 (15 分)
- P2341 [HAOI2006]受欢迎的牛 强连通
- php属于脚本,php是脚本语言吗
- 快慢指针 —— 链表中点
- java并发:线程同步机制之计数器Exechanger
- 广州打捞局成功救助7名遇险人员
- 3.使用SqlCommand执行SQL语句
- 第八章《Unity游戏优化》内存管理
- 高光谱图像处理和分析软件(包含雷尼绍Renishaw wdf 文件导入解析功能)
- 【ManageEngine】IP地址扫描的作用
- 小程序消息订阅发送功能教程
- 六.全文检索ElasticSearch经典入门-高亮
- 爱乐活改版未断根,改版后不伦不类