sqlserver 快速生成汉字的首拼字母的函数(经典)

所属分类: 数据库 / MsSql 阅读数: 1125
收藏 0 赞 0 分享
代码如下:
复制代码 代码如下:

USE [tempdb]
GO
/****** Object: UserDefinedFunction [dbo].[fun_getPY] Script Date: 05/23/2012 18:03:45 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
获取汉字的首拼音
如果是非汉字字符
*/
ALTER function [dbo].[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 upper(@PY)
end

调用如下:
复制代码 代码如下:

select dbo.[fun_getPY]('中国人') 首拼

结果:
ZGR
更多精彩内容其他人还在看

SQL Server正确删除Windows认证用户的方法

这篇文章主要给大家介绍了关于SQL Server正确删除Windows认证用户的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用SQL Server具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

SQL Server查看login所授予的具体权限问题

在SQL Server数据库中如何查看一个登录名(login)的具体权限呢,下面脚本之家小编给大家带来了SQL Server查看login所授予的具体权限问题,感兴趣的朋友一起看看吧
收藏 0 赞 0 分享

Mysql8.0.17安装教程【推荐】

本文通过图文并茂的形式给大家介绍了Mysql8.0.17安装,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C# ling to sql 取多条记录最大时间

这篇文章主要介绍了C# ling to sql 取多条记录最大时间,文中通过实例代码给大家介绍了sql 查询相同记录下日期最大的 一条,代码简单易懂,需要的朋友可以参考下
收藏 0 赞 0 分享

sql server编写archive通用模板脚本实现自动分批删除数据

这篇文章主要介绍了sql server编写archive通用模板脚本实现自动分批删除数据,需要的朋友可以参考下
收藏 0 赞 0 分享

SQL Server怎么找出一个表包含的页信息(Page)

这篇文章主要给大家介绍了关于SQL Server是如何找出一个表包含的页信息(Page)的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用SQL Server具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

SQLyog连接MySQL8.0报2058错误的完美解决方法

这篇文章主要介绍了SQLyog连接MySQL8.0报2058错误的完美解决方法,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

SQL SERVER日志进行收缩的图文教程

这篇文章主要给大家介绍了关于SQL SERVER日志进行收缩的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用SQL SERVER具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

SqlServer中批量update语句

我现在想把S_USER表中的ACCOUNT批量修改成S_PERSON的ACCOUNT,那么就可以参考下面的语句,要找到对应的字段
收藏 0 赞 0 分享

SqlServer AS的用法

本篇文章简要分析,在SQL SERVER中,AS的基本用法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多