首页 > 数据库 >用SQL编写获取拼音码的函数

用SQL编写获取拼音码的函数

时间:2022-09-24 16:00:59浏览次数:45  
标签:set temp 拼音码 when intLen substring str SQL 编写

CREATE  function  [dbo].[fn_GetPy](@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  

  

标签:set,temp,拼音码,when,intLen,substring,str,SQL,编写
From: https://www.cnblogs.com/fatherofbeauty/p/16725794.html

相关文章

  • mysql数据库漏洞修复方案之数据库版本升级
    Centos7二进制方式安装的mysql5.7.30升级为5.7.38解决CVE-2021-22946漏洞 一、背景由于进行安全扫描,发现mysql存在漏洞,高危漏洞编号为(CVE-2021-22946),此外还有多个中......
  • MySql主从复制
    Mysql主从复制是MySql数据库自带的功能,是多台Mysql数据库(salve,从库)从另一台MySql数据库(master,主库)进行日志复制再解析并应用到自身,最终实现从库的数据和主库的数据保......
  • CodeSmith无法获取MySQL表及列Description说明处理
    实体类生成模板下载:链接:https://pan.baidu.com/s/1tLxW5m5ECwVV2feWSVtQIA提取码:qezw反编译工具下载:链接:https://pan.baidu.com/s/19dG4NweQodLl0yG5XQrcOg提取码:r793......
  • mysql可视化工具连接mysql时报错client does not support authentication
    一、问题背景用MySQL可视化工具连接数据库,异常报错信息如下:二、报错信息如下连接mysql时报错clientdoesnotsupportauthentication三、我的项目配置如下无四、......
  • 模板分文件编写,CUDA打印
    ifndefFUN_HPPdefineFUN_HPPifdefined(USE_EXPORT)defineEXPORTexportelsedefineEXPORTendifEXPORTtemplatevoidprint_typeof(Tconst&);if!defined(US......
  • 使用 CSS 从头开始​​编写时间线效果
    我报名了GoldstoneProjectPhase1Challenge——瓜分100,000奖池,这是我的第7篇文章,点击查看活动详情时间线效果介绍在前端开发中,我们会遇到一些特别适合用时间轴显示......
  • SqlsesionUtils创建
    一、sqlsessionUtils由于在执行每个事务时,都要创建一个Sqlsession来执行sql语句创建一个工具类,把创建的类打包,也就是SqlsessionFactory工具构造方法私有化,为了防止new......
  • SQL堂上练习二
    显示某个表所有的内容select*fromdepartments;输出如下DEPARTMENT_IDDEPARTMENT_NAMEMANAGER_IDLOCATION_ID-......
  • mysql between and 实测索引时效问题
    数据量大概10Wexplainselectcount(*)frompredictionswherepredictions.deleted_atisnulland(in_timebetween'2022-09-01'and'2022-09-13')上面的走索引......
  • linux 启动mysql失败 InnoDB: Table flags are 0 in the data dictionary but the fla
    linux启动mysql失败,报错日志文件里的报错信息InnoDB:Tableflagsare0inthedatadictionarybuttheflagsinfile./ibdata1are0x4800!执行 sudosystemctl......