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

 更新时间:2012年05月27日 22:43:40   作者:  
经常要对姓名按拼音搜索,所以需要做如下函数来快速获取首拼,需要的朋友可以参考下
代码如下:
复制代码 代码如下:

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中with as使用介绍

    SQL Server中with as使用介绍

    这篇文章主要介绍了SQL Server中with as使用介绍,需要的朋友可以参考下
    2019-11-11
  • sql中常见的四种排名函数的用法

    sql中常见的四种排名函数的用法

    本文主要介绍了sql中常见的四种排名函数的用法,主要包括row_number,rank,dense_rank,ntile,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • NetBeans连接SQL server数据库教程

    NetBeans连接SQL server数据库教程

    这篇文章主要介绍了NetBeans连接SQL server数据库教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • SQLServer2019安装教程图文详解

    SQLServer2019安装教程图文详解

    这篇文章主要介绍了SQLServer2019安装教程图文详解,本文通过图文并茂的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 详解SQL Server 中 JSON_MODIFY 的使用

    详解SQL Server 中 JSON_MODIFY 的使用

    SQL Server 从 2016 开始支持了一些 JSON操作,最近的项目里也是好多地方字段直接存成了 JSON,需要了解一下怎么在SQL Server 中操作 JSON.这篇文章主要介绍了SQL Server 中 JSON_MODIFY 的使用,需要的朋友可以参考下
    2019-11-11
  • MSSQL MySQL 数据库分页(存储过程)

    MSSQL MySQL 数据库分页(存储过程)

    有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活
    2012-01-01
  • SQLServer日期函数总结案例详解

    SQLServer日期函数总结案例详解

    这篇文章主要介绍了SQLServer日期函数总结案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • 深入解析MS-SQL锁机制

    深入解析MS-SQL锁机制

    以下是对MS-SQL锁机制进行了详细的介绍,需要的朋友可以过来参考下
    2013-08-08
  • sqlserver中求字符串中汉字的个数的sql语句

    sqlserver中求字符串中汉字的个数的sql语句

    sqlserver中求字符串中汉字的个数的sql语句,需要的朋友可以参考下
    2012-05-05
  • mssql 指定字段编号sql语句

    mssql 指定字段编号sql语句

    不错的实现数据库字段编号重排。
    2009-04-04

最新评论