SQL语句——生成汉字首字母拼音
sql脚本获取汉字首字母的2种方法:
1、
create function GetPY(@str varchar(500))
returns varchar(500)
as
begin
declare @cyc int,@length int,@str1 varchar(100),@charcate varbinary(20)
set @cyc=1--从第几个字开始取
set @length=len(@str)--输入汉字的长度
set @str1=''--用于存放返回值
while @cyc<=@length
begin
select @charcate=cast(substring(@str,@cyc,1) as varbinary)--每次取出一个字并将其转变成二进制,便于与GBK编码表进行比较
if @charcate>=0XB0A1 and @charcate<=0XB0C4
set @str1=@str1+'A'--说明此汉字的首字母为A,以下同上
else if @charcate>=0XB0C5 and @charcate<=0XB2C0
set @str1=@str1+'B'
else if @charcate>=0XB2C1 and @charcate<=0XB4ED
set @str1=@str1+'C'
else if @charcate>=0XB4EE and @charcate<=0XB6E9
set @str1=@str1+'D'
else if @charcate>=0XB6EA and @charcate<=0XB7A1
set @str1=@str1+'E'
else if @charcate>=0XB7A2 and @charcate<=0XB8C0
set @str1=@str1+'F'
else if @charcate>=0XB8C1 and @charcate<=0XB9FD
set @str1=@str1+'G'
else if @charcate>=0XB9FE and @charcate<=0XBBF6
set @str1=@str1+'H'
else if @charcate>=0XBBF7 and @charcate<=0XBFA5
set @str1=@str1+'J'
else if @charcate>=0XBFA6 and @charcate<=0XC0AB
set @str1=@str1+'K'
else if @charcate>=0XC0AC and @charcate<=0XC2E7
set @str1=@str1+'L'
else if @charcate>=0XC2E8 and @charcate<=0XC4C2
set @str1=@str1+'M'
else if @charcate>=0XC4C3 and @charcate<=0XC5B5
set @str1=@str1+'N'
else if @charcate>=0XC5B6 and @charcate<=0XC5BD
set @str1=@str1+'O'
else if @charcate>=0XC5BE and @charcate<=0XC6D9
set @str1=@str1+'P'
else if @charcate>=0XC6DA and @charcate<=0XC8BA
set @str1=@str1+'Q'
else if @charcate>=0XC8BB and @charcate<=0XC8F5
set @str1=@str1+'R'
else if @charcate>=0XC8F6 and @charcate<=0XCBF9
set @str1=@str1+'S'
else if @charcate>=0XCBFA and @charcate<=0XCDD9
set @str1=@str1+'T'
else if @charcate>=0XCDDA and @charcate<=0XCEF3
set @str1=@str1+'W'
else if @charcate>=0XCEF4 and @charcate<=0XD1B8
set @str1=@str1+'X'
else if @charcate>=0XD1B9 and @charcate<=0XD4D0
set @str1=@str1+'Y'
else if @charcate>=0XD4D1 and @charcate<=0XD7F9
set @str1=@str1+'Z'
set @cyc=@cyc+1 --取出输入汉字的下一个字
end
return @str1 --返回输入汉字的首字母
end
--测试数据
select dbo.GetPY('大神法师打发第三方阿斯顿发送方丹丹;基金经理简历看见,哈哈')
返回:DSFSDFDSFASDFSFDDJJJLJLKJHH
2、
--生成拼音首码
CREATE function fn_GetPy1(@str nvarchar(4000))
returns nvarchar(4000)
--WITH ENCRYPTION
as
begin
declare @intLen int
declare @strRet nvarchar(4000)
declare @temp nvarchar(100)
set @intLen = len(@str)
set @strRet = ''
while @intLen > 0
begin
set @temp = ''
select @temp = case
when substring(@str,@intLen,1) >= '帀' then 'Z'
when substring(@str,@intLen,1) >= '丫' then 'Y'
when substring(@str,@intLen,1) >= '夕' then 'X'
when substring(@str,@intLen,1) >= '屲' then 'W'
when substring(@str,@intLen,1) >= '他' then 'T'
when substring(@str,@intLen,1) >= '仨' then 'S'
when substring(@str,@intLen,1) >= '呥' then 'R'
when substring(@str,@intLen,1) >= '七' then 'Q'
when substring(@str,@intLen,1) >= '妑' then 'P'
when substring(@str,@intLen,1) >= '噢' then 'O'
when substring(@str,@intLen,1) >= '拏' then 'N'
when substring(@str,@intLen,1) >= '嘸' then 'M'
when substring(@str,@intLen,1) >= '垃' then 'L'
when substring(@str,@intLen,1) >= '咔' then 'K'
when substring(@str,@intLen,1) >= '丌' then 'J'
when substring(@str,@intLen,1) >= '铪' then 'H'
when substring(@str,@intLen,1) >= '旮' then 'G'
when substring(@str,@intLen,1) >= '发' then 'F'
when substring(@str,@intLen,1) >= '妸' then 'E'
when substring(@str,@intLen,1) >= '咑' then 'D'
when substring(@str,@intLen,1) >= '嚓' then 'C'
when substring(@str,@intLen,1) >= '八' then 'B'
when substring(@str,@intLen,1) >= '吖' then 'A'
else rtrim(ltrim(substring(@str,@intLen,1)))
end
--对于汉字特殊字符,不生成拼音码
if (ascii(@temp)>127) set @temp = ''
--对于英文中小括号,不生成拼音码
if @temp = '(' or @temp = ')' set @temp = ''
select @strRet = @temp + @strRet
set @intLen = @intLen - 1
end
return lower(@strRet)
end
-- 测试:
SELECT fullname, test.dbo.fn_GetPy1(fullname) AS pymc
FROM tabename
返回:
SQL语句——生成汉字首字母拼音相关推荐
- JS实现获取汉字首字母拼音、全拼音及混拼音的方法
本文实例讲述了JS实现获取汉字首字母拼音.全拼音及混拼音的方法.分享给大家供大家参考,具体如下: 这里需要用到一个js获取汉字拼音的插件,可点击此处本站下载. 运行效果如下: 完整示例代码: ? 1 ...
- JAVA获取汉字首字母拼音
JAVA获取汉字首字母拼音 jar导入 工具类 jar导入 <dependency><groupId>com.belerweb</groupId><artif ...
- mysql获取汉字首字母拼音,包括复杂字
1. 获取汉字首字母大写如下代码 CREATE FUNCTION `F_GET_PYJM`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8 ...
- SQL语句按照姓名首字母排序
Mysql 前言 UTF-8 GBK 前言 最近小咸儿做项目,根据业务需求,需要将查出来的人员姓名按照拼音首字母进行排序,小咸儿选择在SQL语句上对姓名字段进行排序,这样查出来的人员就已经是排好序 ...
- sql查询汉字首字母
sql查询各个汉字首字母 先上代码 DROP FUNCTION IF EXISTS `getPY`; DELIMITER ;; CREATE FUNCTION `getPY`(in_string VA ...
- php判断汉子首字母的函数,php获取汉字首字母的函数
本文介绍用php实现汉字转化为首字母的方法,主要功能是:功能明确,易于修改维护和扩展: 英文的字串:不变返回(包括数字):中文字符串:返回拼音首字符: 中英混合串: 返回拼音首字符和英文. 网上的方法 ...
- 按汉字首字母排序(sql语句)
在sql server中可以直接通过SQL语句实现按汉字首字母排序,比如我们经常用到的"按姓名首字母排序" --把tableName和colName换成自己的就ok了 --按拼音 ...
- MySql中用sql语句实现按汉字首字母排序
转载自https://blog.csdn.net/hulinyi123456/article/details/79915521 1.mysql 1)按照汉字的拼音排序 如果存储汉字的字段编码使用的是G ...
- 按汉字首字母排序(sql语句) 只为收集,本人复制粘贴水寒冰局的
在sql server中可以直接通过SQL语句实现按汉字首字母排序,比如我们经常用到的"按姓名首字母排序" --把tableName和colName换成自己的就ok了 --按拼音 ...
最新文章
- amd的处理器能兼容idea么_250元就能买到16GB内存 这背后究竟是道德的沦丧还是人性的扭曲?...
- MyBatis使用动态代理报 invalid bound statement (not found) 错
- 分子排列不同会导致_生物信息遇上Deep learning(7): ReLeaSE--强化学习做药物分子设计...
- 基于Android的闹钟的软件
- 获取Spring容器管理的Bean工具类
- 为label或者textView添加placeHolder
- 190301每日一句
- 超级马里奥【附源码】
- 今天的骑行路线。。。
- hostapd_cli 使用命令
- 深度盘点:整理100个 Pandas 常用函数
- 读取NTFS的USN(快速检索文件)
- 2022年下半年软考推荐考哪个科目?
- vue中文本超出省略号
- 第一个Springboot程序
- 计算机带给我们的改变英语作文,技术正改变我们的生活(Technology Is Changing Our Lives)...
- 数据库系统原理与应用教程(047)—— MySQL 查询(九):连接查询
- Linux的发展历史及版本简介
- FFmpeg4入门07:解码视频并保存为YUV格式文件
- Kanzi学习之路(1):Kanzi的简介和安装
热门文章
- 一文带你全面了解游戏运营这个岗位
- 为什么苹果6没有录屏_为什么许多人觉得安卓手机没有苹果手机好用?生态环境决定一切...
- MATLAB | 将图片序列转换为视频文件
- SpringBoot使用Kafka生产者、消费者
- 支持视音频和图片无线传屏以及屏幕镜像的Airplay的前世今生
- 首先从键盘上两个矩阵的行数n和列数m,然后输入两个矩阵A和B的元素值,最后求出两个矩阵的和C并输出其元素值。
- Unity接入穿山甲广告SDK(以及GroMoreDemo)
- 苹果预售夜,官网崩了!iPhone 14 Pro被果粉抢空
- 小码王(洛谷)怪盗基德的滑翔翼
- 通达OA 从OA查询宏景人力资源系统中绩效工资审批情况(图文)