sql 中文转拼音首字母

sql 中文转拼音首字母

http://blog.csdn.net/zhanglong_longlong/article/details/46772571

--可支持大字符集20000个汉字!

create function f_ch2py(@chn nchar(1))
returns char(1)
as
begin
declare @n int
declare @c char(1)
set @n = 63

select @n = @n +1,
       @c = case chn when @chn then char(@n) else @c end
from(
select top 27 * from (
     select chn = 
'吖' union all select
'八' union all select
'嚓' union all select
'咑' union all select
'妸' union all select
'发' union all select
'旮' union all select
'铪' union all select
'丌' union all select  --because have no 'i'
'丌' union all select
'咔' union all select
'垃' union all select
'嘸' union all select
'拏' union all select
'噢' union all select
'妑' union all select
'七' union all select
'呥' union all select
'仨' union all select
'他' union all select
'屲' union all select  --no 'u'
'屲' union all select  --no 'v'
'屲' union all select
'夕' union all select
'丫' union all select
'帀' union all select @chn) as a
order by chn COLLATE Chinese_PRC_CI_AS 
) as b
return(@c)
end
go

select dbo.f_ch2py('中')  --Z
select dbo.f_ch2py('国')  --G
select dbo.f_ch2py('人')  --R
select dbo.f_ch2py('镆')  --M
go
-----------------调用
CREATE FUNCTION F_GetHelpCode (
        @cName VARCHAR(20) )
RETURNS VARCHAR(12)
AS
BEGIN
   DECLARE @i SMALLINT, @L SMALLINT , @cHelpCode VARCHAR(12), @e VARCHAR(12), @iAscii SMALLINT
   SELECT @i=1, @L=0 , @cHelpCode=''
   while @L<=12 AND @i<=LEN(@cName) BEGIN
      SELECT @e=LOWER(SUBSTRING(@cname,@i,1))
      SELECT @iAscii=ASCII(@e)
      IF @iAscii>=48 AND @iAscii <=57 OR @iAscii>=97 AND @iAscii <=122 or @iAscii=95 
       SELECT @cHelpCode=@cHelpCode  +@e
      ELSE
      IF @iAscii>=176 AND @iAscii <=247
            SELECT @cHelpCode=@cHelpCode  + dbo.f_ch2py(@e)
        ELSE SELECT @L=@L-1
      SELECT @i=@i+1, @L=@L+1 END 
    RETURN @cHelpCode
END
GO

--调用
select dbo.F_GetHelpCode('大力')

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/113653.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 使用protractor操作页面元素「建议收藏」

    使用protractor操作页面元素「建议收藏」Protractor是为AngularJS应用量身打造的端到端测试框架。它可以真实的驱动浏览器,自动完成对web应用的测试。Protractor驱动浏览器使用的是WebDriver标准,所以使用起来与其他语言实现的WebDriver库大体相同。当然,我说大体相同那肯定还是有不同的地方。一旦不注意这些不同的地方就会坑到你(我就被成功坑过,所以才有了这篇文章)。Protractor编写测…

    2022年10月27日
  • windows7未能连接一个windows服务(无法连接网络)的解决方法

    windows7未能连接一个windows服务(无法连接网络)的解决方法今天下午不知道怎么搞的,就搞的无线不可以用了,出现了个 “windows7未能连接一个windows服务”问题,而且连eclipse都打不开了。晚上在网上找了一个方法,终于搞定了。方法:是重新安装了下360,然后它自动检测出来要修复LSP文件,然后就点击,再重启后就搞定了。下面这篇文章可能也有用:http://iecspace.ecjtu.org/posts/connect-to-w

  • 软件测试常见面试题

    软件测试常见面试题伴随着疫情的好转,又到了一年收获的季节。最近也有一些面试,整理下常用的测试题目,没有标准答案,需要结合自身的工作实践去应答。功能测试相关1、测试流程以及对应阶段的输出有哪些?2、Bug的优先级

  • SpringMVC 执行流程

    SpringMVC 执行流程springMVC(javaweb开发框架)1、MVC三层架构:模型(service、dao)、视图(JSP等)、控制器(Controller)什么是mvc?*MVC是模型、视图、控制器的简写,是一种软件设计规范*是将业务逻辑、数据、显示分离的方法来组织代码*MVC主要的作用就是降低了控制器(Controller)和视图(View)之间的双向耦合度*MVC不是一种设计模式、MVC是一种架构模式。当然不同的MVC存在着差异Model(数据模型):提供要展示的数据。因此包含数据和

  • pip 安装与卸载软件包[通俗易懂]

    pip 安装与卸载软件包[通俗易懂]$pip2installxxx$pip2unstallxxx

    2022年10月16日
  • 《将博客搬至CSDN》[通俗易懂]

    《将博客搬至CSDN》[通俗易懂]后续的文章将自动同步到csdn

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号