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语句——生成汉字首字母拼音相关推荐

  1. JS实现获取汉字首字母拼音、全拼音及混拼音的方法

    本文实例讲述了JS实现获取汉字首字母拼音.全拼音及混拼音的方法.分享给大家供大家参考,具体如下: 这里需要用到一个js获取汉字拼音的插件,可点击此处本站下载. 运行效果如下: 完整示例代码: ? 1 ...

  2. JAVA获取汉字首字母拼音

    JAVA获取汉字首字母拼音 jar导入 工具类 jar导入 <dependency><groupId>com.belerweb</groupId><artif ...

  3. mysql获取汉字首字母拼音,包括复杂字

    1. 获取汉字首字母大写如下代码 CREATE FUNCTION `F_GET_PYJM`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8 ...

  4. SQL语句按照姓名首字母排序

    Mysql 前言 UTF-8 GBK 前言   最近小咸儿做项目,根据业务需求,需要将查出来的人员姓名按照拼音首字母进行排序,小咸儿选择在SQL语句上对姓名字段进行排序,这样查出来的人员就已经是排好序 ...

  5. sql查询汉字首字母

    sql查询各个汉字首字母 先上代码 DROP FUNCTION IF EXISTS `getPY`; DELIMITER ;; CREATE FUNCTION `getPY`(in_string VA ...

  6. php判断汉子首字母的函数,php获取汉字首字母的函数

    本文介绍用php实现汉字转化为首字母的方法,主要功能是:功能明确,易于修改维护和扩展: 英文的字串:不变返回(包括数字):中文字符串:返回拼音首字符: 中英混合串: 返回拼音首字符和英文. 网上的方法 ...

  7. 按汉字首字母排序(sql语句)

    在sql server中可以直接通过SQL语句实现按汉字首字母排序,比如我们经常用到的"按姓名首字母排序" --把tableName和colName换成自己的就ok了 --按拼音 ...

  8. MySql中用sql语句实现按汉字首字母排序

    转载自https://blog.csdn.net/hulinyi123456/article/details/79915521 1.mysql 1)按照汉字的拼音排序 如果存储汉字的字段编码使用的是G ...

  9. 按汉字首字母排序(sql语句) 只为收集,本人复制粘贴水寒冰局的

    在sql server中可以直接通过SQL语句实现按汉字首字母排序,比如我们经常用到的"按姓名首字母排序" --把tableName和colName换成自己的就ok了 --按拼音 ...

最新文章

  1. amd的处理器能兼容idea么_250元就能买到16GB内存 这背后究竟是道德的沦丧还是人性的扭曲?...
  2. MyBatis使用动态代理报 invalid bound statement (not found) 错
  3. 分子排列不同会导致_生物信息遇上Deep learning(7): ReLeaSE--强化学习做药物分子设计...
  4. 基于Android的闹钟的软件
  5. 获取Spring容器管理的Bean工具类
  6. 为label或者textView添加placeHolder
  7. 190301每日一句
  8. 超级马里奥【附源码】
  9. 今天的骑行路线。。。
  10. hostapd_cli 使用命令
  11. 深度盘点:整理100个 Pandas 常用函数
  12. 读取NTFS的USN(快速检索文件)
  13. 2022年下半年软考推荐考哪个科目?
  14. vue中文本超出省略号
  15. 第一个Springboot程序
  16. 计算机带给我们的改变英语作文,技术正改变我们的生活(Technology Is Changing Our Lives)...
  17. 数据库系统原理与应用教程(047)—— MySQL 查询(九):连接查询
  18. Linux的发展历史及版本简介
  19. FFmpeg4入门07:解码视频并保存为YUV格式文件
  20. Kanzi学习之路(1):Kanzi的简介和安装

热门文章

  1. 一文带你全面了解游戏运营这个岗位
  2. 为什么苹果6没有录屏_为什么许多人觉得安卓手机没有苹果手机好用?生态环境决定一切...
  3. MATLAB | 将图片序列转换为视频文件
  4. SpringBoot使用Kafka生产者、消费者
  5. 支持视音频和图片无线传屏以及屏幕镜像的Airplay的前世今生
  6. 首先从键盘上两个矩阵的行数n和列数m,然后输入两个矩阵A和B的元素值,最后求出两个矩阵的和C并输出其元素值。
  7. Unity接入穿山甲广告SDK(以及GroMoreDemo)
  8. 苹果预售夜,官网崩了!iPhone 14 Pro被果粉抢空
  9. 小码王(洛谷)怪盗基德的滑翔翼
  10. 通达OA 从OA查询宏景人力资源系统中绩效工资审批情况(图文)