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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
    正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之气,日后必有一番作为!旁边有“推荐”二字,你就顺手把它点了吧,相得准,我分文不收;相不准,你也好回来找我!
  • 相关阅读:
    学习笔记 MYSQL报错注入(count()、rand()、group by)
    学习笔记 HTTP参数污染注入
    学习笔记 MSSQL显错手工注入
    代码审计入门后审计技巧
    字符串的排列
    二叉搜索树与双向链表
    复杂链表的复制
    二叉树中和为某一值的路径
    二叉搜索树的后序遍历序列
    从上往下打印二叉树
  • 原文地址:https://www.cnblogs.com/xilipu31/p/3054641.html
Copyright © 2011-2022 走看看