ERDS网校 - ERDS企业自主信息化培训,交流

查看: 281|回复: 0

取汉字首字母函数二

[复制链接]

80

主题

87

帖子

315

积分

版主

Rank: 7Rank: 7Rank: 7

积分
315
发表于 2015-10-16 14:53:24 | 显示全部楼层 |阅读模式
本帖最后由 Swj 于 2015-10-16 15:18 编辑

create function [dbo].[f_getpy_V2](@Str varchar(500)='')

returns varchar(500)

as

begin

    declare @strlen int,@return varchar(500),@ii int

    declare @n int,@c char(1),@chn nchar(1)

    select @strlen=len(@str),@return='',@ii=0

    set @ii=0

    while @ii<@strlen

    begin

       select @ii=@ii+1,@n=63,@chn=substring(@str,@ii,1)

       if @chn>'z'

       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 '丌' --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 '帀'

       union all select @chn) as a

       order by chn COLLATE Chinese_PRC_CI_AS

       ) as b

       else set @c='a'

       set @return=@return+@c

    end

    return(@return)

end



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|ERDS网校   点击这里给我发消息

快速回复 返回顶部 返回列表