当前位置: 首页 > news >正文

SQL中实现汉字的拼音首字母查询

由于汉语拼音首字母也就23个,该方法利用汉字字符按拼音字母排序的特点来生成对应的拼单首字母,只需找到这23个汉语拼音首字母中分别排序在第一的汉字生成23条临时表数据用于参照,即可简单实现汉字匹配拼音首字母

CREATE FUNCTION f_GetPyAcronym(@str nvarchar(4000)) 
RETURNS nvarchar(4000) 
AS 
BEGIN declare @strlen int, @re nvarchar(4000) declare @t table(chr nchar(1) collate Chinese_PRC_CI_AS, letter nchar(1))insert into @t(chr, letter) select N'吖 ', 'A '   union all select N'八 ', 'B '   union all select N'嚓 ', 'C 'union all select N'咑 ', 'D 'union all select N'妸 ', 'E '   union all select N'发 ', 'F '   union all select N'旮 ', 'G '   union all select N'铪 ', 'H '   union all select N'丌 ', 'J '   union all select N'咔 ', 'K '   union all select N'垃 ', 'L '   union all select N'呒 ', 'M '   union all select N'拏 ', 'N '   union all select N'噢 ', 'O '   union all select N'妑 ', 'P '   union all select N'七 ', 'Q '   union all select N'呥 ', 'R '   union all select N'仨 ', 'S '   union all select N'他 ', 'T '   union all select N'屲 ', 'W '   union all select N'夕 ', 'X '   union all select N'丫 ', 'Y '   union all select N'帀 ', 'Z '	--(注意该字是“帀”【读zā】,不是“币”)select @strlen = len(@str), @re = '' while @strlen > 0 begin select top 1 @re = letter + @re, @strlen = @strlen - 1 from @t awhere chr <= substring(@str, @strlen, 1)order by chr desc if @@rowcount=0select @re = substring(@str, @strlen, 1) + @re, @strlen = @strlen - 1	--排在汉字前面的字符(比如英文字母)原样输出end RETURN(@re) 
END 

测试:

select dbo.f_GetPyAcronym(N'abc- 汉字 -abc')  --得到结果:“abc- HZ -abc”

http://www.lryc.cn/news/226280.html

相关文章:

  • 今天知道LiveData的ktx是真的香
  • SpringBoot中的桥接模式
  • AI爆文变现脚本:易用且免费的自动写作脚本更新了
  • 代码随想录算法训练营Day 49 || 123.买卖股票的最佳时机III 、188.买卖股票的最佳时机IV
  • threejs(11)-精通着色器编程(难点)2
  • 配置cuda和cudnn出现 libcudnn.so.8 is not a symbolic link问题
  • “目标值排列匹配“和“背包组合问题“的区别和leetcode例题详解
  • 火星加载WMTS服务
  • 为什么要学习去使用云服务器,外网 IP能干什么,MAC使用Termius连接阿里云服务器。保姆级教学
  • VS c++多文件编译
  • JVM关键指标监控(调优)
  • 【Proteus仿真】【Arduino单片机】LCD1602-IIC液晶显示
  • skynet学习笔记03— 服务
  • 34 Feign最佳实践
  • 软文推广中如何搭建媒体矩阵
  • Unity地面交互效果——5、角色足迹的制作
  • Centos8安装出错问题
  • 计算机网络技术
  • 当电脑桌面黑屏,而你只有一个鼠标该怎么办(重启方法的平替)
  • Leetcode2833. 距离原点最远的点
  • chrome 的vue3的开发者devtool不起作用
  • Redis数据结构七之listpack和quicklist
  • 单词规律问题
  • 蓝桥杯每日一题2023.11.8
  • 高级PHP应用程序漏洞审核技术【一】
  • 适用于4D毫米波雷达的目标矩形框聚类
  • [模版总结] - 树的基本算法1 - 遍历
  • macOS Sonoma 14.2beta2(23C5041e)发布(附黑白苹果镜像地址)
  • Docker进阶——再次认识docker的概念 Docker的结构 Docker镜像结构 镜像的构建方式
  • postgis函数学习