1. Create function fn_GetPy(@str nvarchar(4000))
  2. returns nvarchar(4000)
  3. --用于加密
  4. --WITH ENCRYPTION
  5. as
  6. begin
  7. declare @intLen int
  8. declare @strRet nvarchar(4000)
  9. declare @temp nvarchar(100)
  10. set @intLen = len(@str)
  11. set @strRet = ''
  12. while @intLen > 0
  13. begin
  14. set @temp = ''
  15. select @temp = case
  16. when substring(@str,@intLen,1) >= '帀' then 'Z'
  17. when substring(@str,@intLen,1) >= '丫' then 'Y'
  18. when substring(@str,@intLen,1) >= '夕' then 'X'
  19. when substring(@str,@intLen,1) >= '屲' then 'W'
  20. when substring(@str,@intLen,1) >= '他' then 'T'
  21. when substring(@str,@intLen,1) >= '仨' then 'S'
  22. when substring(@str,@intLen,1) >= '呥' then 'R'
  23. when substring(@str,@intLen,1) >= '七' then 'Q'
  24. when substring(@str,@intLen,1) >= '妑' then 'P'
  25. when substring(@str,@intLen,1) >= '噢' then 'O'
  26. when substring(@str,@intLen,1) >= '拏' then 'N'
  27. when substring(@str,@intLen,1) >= '嘸' then 'M'
  28. when substring(@str,@intLen,1) >= '垃' then 'L'
  29. when substring(@str,@intLen,1) >= '咔' then 'K'
  30. when substring(@str,@intLen,1) >= '丌' then 'J'
  31. when substring(@str,@intLen,1) >= '铪' then 'H'
  32. when substring(@str,@intLen,1) >= '旮' then 'G'
  33. when substring(@str,@intLen,1) >= '发' then 'F'
  34. when substring(@str,@intLen,1) >= '妸' then 'E'
  35. when substring(@str,@intLen,1) >= '咑' then 'D'
  36. when substring(@str,@intLen,1) >= '嚓' then 'C'
  37. when substring(@str,@intLen,1) >= '八' then 'B'
  38. when substring(@str,@intLen,1) >= '吖' then 'A'
  39. else rtrim(ltrim(substring(@str,@intLen,1)))
  40. end
  41. --对于汉字特殊字符,不生成拼音码
  42. if (ascii(@temp)>127) set @temp = ''
  43. --对于英文中小括号,不生成拼音码
  44. if @temp = '(' or @temp = ')' set @temp = ''
  45. select @strRet = @temp + @strRet
  46. set @intLen = @intLen - 1
  47. end
  48. return lower(@strRet)
  49. end

调用方法

  1. select dbo.fn_GetPy('汉字') py

出处:http://www.cnblogs.com/xilipu31/

sql 取汉字首字母的更多相关文章

  1. SQL函数-汉字首字母查询

    汉字首字母查询处理用户定义函数 CREATE FUNCTION f_GetPY1(@str nvarchar(4000))RETURNS nvarchar(4000)ASBEGIN DECLARE @ ...

  2. WPF,ComboBox,取汉字首字母,extBoxBase.TextChanged

    1取汉字汉语拼音首字母: private static string GetFirstLetterOfChineseString(string CnChar) { long iCnChar; byte ...

  3. C#取汉字首字母,汉字全拼

    使用类库为 https://gitee.com/kuiyu/dotnetcodes/tree/master/DotNet.Utilities/%E6%B1%89%E5%AD%97%E8%BD%AC%E ...

  4. java 取汉字首字母

    有时候,可能会有一些类似这样的需求: 对于这样的效果,我们可以有类似这样的解决方案: package bys.utils; import java.io.UnsupportedEncodingExce ...

  5. SQL获取汉字首字母

    )) ) as begin ) ) collate Chinese_PRC_CI_AS,letter )) insert into @t(chr,letter) select '吖','A' unio ...

  6. sql按照汉字首字母顺序排序(桃)

    SELECT * FROM 表名 order by CONVERT(字段名 USING gbk)

  7. SQL SERVER 得到汉字首字母函数四版全集 --【叶子】

    --创建取汉字首字母函数(第三版) create function [dbo].[f_getpy_V3] ( ) ) ) as begin ),) ,@len = len(@col),@sql = ' ...

  8. php方法-------将汉字转为拼音或者提取汉字首字母

    将汉字转为全拼,提取汉字首字母 <?php /** * 基于PHP语言的汉语转拼音的类 * 兼容 UTF8.GBK.GB2312 编码,无须特殊处理 * 对中文默认返回拼音首字母缩写,其它字符不 ...

  9. MSSQL 获取汉字全拼 和 汉字首字母

    --获取全拼 DECLARE @str VARCHAR(max) SET @str= [dbo].[fn_Getquanpin]('中山') PRINT(@str) )) ) as begin ),) ...

随机推荐

  1. spring源码:web容器启动(li)

    web项目中可以集成spring的ApplicationContext进行bean的管理,这样使用起来bean更加便捷,能够利用到很多spring的特性.我们比较常用的web容器有jetty,tomc ...

  2. css图片精灵

    <ul> <li class="top"> <em>01</em> <p><a href="http:/ ...

  3. JQuery使用deferreds串行多个ajax请求

    使用JQuery对多个ajax请求串行执行. HTML代码: <a href="#">Click me!</a> <div></div&g ...

  4. Android:让WebView支持<input type=”file”…>元素

    最近在做一个活动页面:用户上传一张图片进行缩放.旋转后点击下一步填写内容后生成图片! 做好后经过各种测试是没有问题的,基本没有什么明显BUG,流程都能走通,但是嵌入到APP后,问题就来了! 在IOS上 ...

  5. ubuntu自动执行

    一般先写个sh脚本文件---->要执行的语句写入sh文件----->chromd -x ???.sh增加权限即可 crontab -e * * * * * /home/???.sh */1 ...

  6. 原创 C++应用程序在Windows下的编译、链接:第二部分COFF/PE文件结构

    2.1概述 在windows操作系统下,可执行文件的存储格式是PE格式:在Linux操作系统下,可执行文件的存储格式的WLF格式.它们都是COFF格式文件的变种,都是从COFF格式的文件演化而来的. ...

  7. 使用专业的消息队列产品rabbitmq之centos7环境安装

      我们在项目开发的时候都不可避免的会有异步化的问题,比较好的解决方案就是使用消息队列,可供选择的队列产品也有很多,比如轻量级的redis, 当然还有重量级的专业产品rabbitmq,rabbitmq ...

  8. 理解OVER子句

    简介 Over子句在SQLServer 2005中回归,并且在2012中得到了扩展.这个功能主要结合窗口函数来使用:也可以在序列函数"NEXT VALUE FOR"使用.OVER子 ...

  9. [MySQL性能优化系列]提高缓存命中率

    1. 背景 通常情况下,能用一条sql语句完成的查询,我们尽量不用多次查询完成.因为,查询次数越多,通信开销越大.但是,分多次查询,有可能提高缓存命中率.到底使用一个复合查询还是多个独立查询,需要根据 ...

  10. 从零自学Hadoop系列索引

    本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 从零自学Hadoop(01):认识Hadoop ...