sql存储过程获取汉字拼音头字母函数

来源:asp之家 时间:2011-11-03 16:58:05 

代码如下:


--函数
CREATE function fn_GetPy(@str nvarchar(4000))
returns nvarchar(4000)
--WITH ENCRYPTION
as
begin
declare @intLenint
declare @strRetnvarchar(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
go
--调用
select dbo.fn_getpy('张三')
--返回:zs
答!: 2:
取汉字拼音首字母的存储过程
Create function fun_getPY ( @str nvarchar(4000) )
returns nvarchar(4000)
as
begin
declare @word nchar(1),@PY nvarchar(4000)
set @PY=''
while len(@str)>0
begin
set @word=left(@str,1)
--如果非汉字字符,返回原字符
set @PY=@PY+(case when unicode(@word) between 19968 and 19968+20901
then (
select top 1 PY
from
(
select 'A' as PY,N'驁' as word
union all select 'B',N'簿'
union all select 'C',N'錯'
union all select 'D',N'鵽'
union all select 'E',N'樲'
union all select 'F',N'鰒'
union all select 'G',N'腂'
union all select 'H',N'夻'
union all select 'J',N'攈'
union all select 'K',N'穒'
union all select 'L',N'鱳'
union all select 'M',N'旀'
union all select 'N',N'桛'
union all select 'O',N'漚'
union all select 'P',N'曝'
union all select 'Q',N'囕'
union all select 'R',N'鶸'
union all select 'S',N'蜶'
union all select 'T',N'籜'
union all select 'W',N'鶩'
union all select 'X',N'鑂'
union all select 'Y',N'韻'
union all select 'Z',N'咗'
) T
where word>=@word collate Chinese_PRC_CS_AS_KS_WS
order by PY ASC
)
else @word
end)
set @str=right(@str,len(@str)-1)
end
return @PY
end

标签:存储过程,汉字拼音,头字母
0
投稿

猜你喜欢

  • Python中生成Epoch的方法

    2021-06-27 15:21:15
  • SQLServer触发器创建、删除、修改、查看示例代码

    2024-01-22 16:33:03
  • Django Admin中增加导出CSV功能过程解析

    2021-04-17 06:22:47
  • 4个场景教会你Go中Goroutine和通道是怎么用的

    2024-04-23 09:45:05
  • 使用go实现简易比特币区块链公链功能

    2024-04-28 09:18:20
  • Ubuntu Server 11.10安装配置lamp(Apache+MySQL+PHP)

    2023-11-17 02:55:00
  • 浅谈Python项目的服务器部署

    2021-01-10 04:26:48
  • Python模块学习 datetime介绍

    2023-08-15 16:01:18
  • Python3标准库总结

    2022-10-22 13:36:47
  • 解决Python 遍历字典时删除元素报异常的问题

    2023-11-17 04:06:47
  • Python办公自动化之Excel介绍

    2021-04-19 11:06:07
  •  Go 语言实现 HTTP 文件上传和下载

    2023-06-23 01:42:24
  • 分享一下Python 开发者节省时间的10个方法

    2023-02-14 21:57:33
  • MAC 中mysql密码忘记解决办法

    2024-01-18 04:13:48
  • 利用Fn.py库在Python中进行函数式编程

    2021-11-14 22:40:38
  • python中sklearn的pipeline模块实例详解

    2021-09-05 00:57:34
  • python私有属性和方法实例分析

    2023-11-21 06:16:13
  • python操作xml文件示例

    2022-06-17 22:38:28
  • Django 中使用日志的方法

    2022-09-12 11:17:40
  • python字符串常用方法

    2023-05-29 13:54:15
  • asp之家 网络编程 m.aspxhome.com