前言

在软件中方便用户查找信息时,都会用到输拼音首字母的简写快速过滤,所以一般我们在Oracle的表中会加上一列助记符列,今天我们就看看将中文怎么转换为拼音首字母。

实现方式

  1. 通过oracle的NLSSORT函数对汉字按照拼音排序。

  2. 然后根据汉字的区间返回对应的首字母。

函数代码

/* 获取拼音简码函数 */
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中根据中文获取拼音首字母相关推荐

  1. js 根据中文获取拼音首字母

    本文来自 : https://blog.csdn.net/llf1991/article/details/79868094 版权声明:本文为博主原创文章,未经博主允许不得转载.    https:// ...

  2. uni-app - 获取汉字拼音首字母(根据中文获取拼音首字母)

    前言

  3. js获取中文汉字拼音首字母

    使用pinyin-pro这个npm包 github: https://github.com/zh-lx/pinyin-pro 特色功能 支持汉字.词语.句子多种格式输入获取 获取拼音 获取声母 获取韵 ...

  4. 根据中文姓名或者其他中英文混合字符串获取拼音首字母

    <?php /** * Modified by fuyong @ 2015-09-13 * 修复二分法查找方法 * 汉字拼音首字母工具类 * 注: 英文的字串:不变返回(包括数字) eg .ab ...

  5. php获取中文字符拼音首字母

    php获取中文字符拼音首字母 function getFirstCharter($str){if(empty($str)){return ''; }$fchar=ord($str{0});if($fc ...

  6. JS输入中文自动获取拼音首字母大写

    输入中文时,自动获取首字母大写 1.安装插件pinyin-pro npm install pinyin-pro 2.引入 import { pinyin } from 'pinyin-pro'; 3. ...

  7. python提取首字母的函数_Oracle提取中文字符串拼音首字母函数

    通过oracle的NLSSORT函数对汉字按照拼音排序,然后根据汉字的区间返回对应的首字母. 效果1,获取拼音简码: 效果2,获取姓名首字母: 创建函数: /* 获取拼音简码函数 */ CREATE ...

  8. thinkphp5.1 + 汉字转拼音 + 获取拼音首字母

    thinkphp5.1 + 汉字转拼音 + 获取拼音首字母 在thinkphp5.1里面引入汉字转拼音类,然后获取首字符 引入汉字转拼音类 1.在extend目录下面创建pingyin文件夹,然后新建 ...

  9. js中文转拼音首字母(js汉字转拼音首字母)

    一.js中文转拼音首字母实现功能 汉字转拼音首字母,js中文转拼音首字母 二.js中文转拼音首字母业务场景 在写即时通讯时必然要做通讯录(联系人列表),联系人列表通常是按照拼音字母表的顺序进行展示的, ...

最新文章

  1. 力扣(LeetCode)刷题,简单题(第15期)
  2. SAP PM入门系列23 - IL07 Functional Location List (Multilevel)
  3. 地球是否健康,最新“诊断报告”来了
  4. installer,source,binary,archive 版本区别
  5. 开的什么源?——第三篇:草根创业
  6. VirtualBox 释放虚拟磁盘文件的大小
  7. 内嵌Tomcat的Connector对象的静态代码块
  8. 02-线性结构1 两个有序链表序列的合并 (15 分)
  9. P2341 [HAOI2006]受欢迎的牛 强连通
  10. php属于脚本,php是脚本语言吗
  11. 快慢指针 —— 链表中点
  12. java并发:线程同步机制之计数器Exechanger
  13. 广州打捞局成功救助7名遇险人员
  14. 3.使用SqlCommand执行SQL语句
  15. 第八章《Unity游戏优化》内存管理
  16. 高光谱图像处理和分析软件(包含雷尼绍Renishaw wdf 文件导入解析功能)
  17. 【ManageEngine】IP地址扫描的作用
  18. 小程序消息订阅发送功能教程
  19. 六.全文检索ElasticSearch经典入门-高亮
  20. 爱乐活改版未断根,改版后不伦不类

热门文章

  1. 本地搭建xxl-job服务及连接验证
  2. ise17.4 版本的安装
  3. 【渝粤教育】广东开放大学 土木工程测量 形成性考核 (45)
  4. 【图解】连狗子都能看懂的Python基础总结(二)什么是库、包、模块?
  5. 微信网页授权登录的方法
  6. AI视频增强 -- Topaz 视频超分 | Topaz Video Enhance AI | 【软件试用】
  7. HTML对表格隔行变色
  8. Samba 服务使用的端口和协议
  9. Pytest注册使用自定义mark标签
  10. 基于VUE-CLI实现待办事项功能