zoukankan      html  css  js  c++  java
  • 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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
    正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之气,日后必有一番作为!旁边有“推荐”二字,你就顺手把它点了吧,相得准,我分文不收;相不准,你也好回来找我!
  • 相关阅读:
    明年,我们依然年轻
    总有些东西会如台风一样的来
    ora00257错误处理方法
    ORACLE登录错误的解决方法
    C#中public new void add()的new在这里的意义
    Oracle Form Builder配置问题的一些总结
    作为程序员,你应该知道的职场晋升之路
    ORA01034错误的解决方法
    【转】JQUERY刷新页面
    【转】对C# 中堆栈,堆,值类型,引用类型的理解
  • 原文地址:https://www.cnblogs.com/xilipu31/p/3054641.html
Copyright © 2011-2022 走看看