• SQL中定义函数,将汉字转成拼音简写


    我们在写程序中,经常会用到SQL中将某个名字转成拼音,然后保存在数据库中某个字段中,方便快捷查询,所以有必要写SQL函数来定义一下,话补多说,直接上代码:

      Create  function  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

    调用方式:

    select dbo.fn_GetPy('张三丰') py

    结果如下:

    py

    zsf

    作者:枫上善若水
    出处:http://www.cnblogs.com/xilipu31/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
    正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之气,日后必有一番作为!旁边有“推荐”二字,你就顺手把它点了吧,相得准,我分文不收;相不准,你也好回来找我!
  • 相关阅读:
    windows下开启docker占用内存过高解决办法
    如何与别人共享Docker镜像
    使用docker部署springboot应用
    使用docker安装mysql5.7
    win10家庭版安装docker
    alibaba sentinel简单实践
    mysql函数GROUP_CONCAT()
    SVN同步时报错:“Previous operation has not finished; run 'cleanup' if it was interrupted”
    Eclipse从SVN检出maven项目后的一些配置
    完美解决 Uncaught SyntaxError: Unexpected token ‘<‘
  • 原文地址:https://www.cnblogs.com/xilipu31/p/3054641.html
Copyright © 2020-2023  润新知