Microsoft SQL Server 编写汉字转拼音函数

03-12 1301阅读

目录

应用场景

举例

函数实现

小结


应用场景

在搜索应用中,我们一般会提供一个搜索框,输入关健字,点击查询按钮以获取结果数据。大部分情况我们会提供模糊查询的形式以在一个或多个字段进行搜索以获取结果。这样可以简化用户的操作,扩大搜索范围,为提高精度而提供基础范围数据。因此按汉字拼音搜索,即可以进一步简化输入,又可以进一步扩大搜索范围。

举例

假设有字典表,表名 sys_d,包括 ID 和 NAME 字段,我们要对 NAME 字段进行搜索,如下图:

Microsoft SQL Server 编写汉字转拼音函数

对于模糊搜索,我们可以通过 like 来实现,比如我们想得到name字段中包含“职称”的记录,如下图执行:

Microsoft SQL Server 编写汉字转拼音函数

用拼音简码的形式,可以更加进一步的增加搜索范围,并可以简化切换输入法的操作,比如输入 ZC,即可以找到字典表中的数据。 因此我们可以编写汉字转拼音的函数 GetPY 进行进一步操作,如下图:

 Microsoft SQL Server 编写汉字转拼音函数

 在搜索时,我们通过该函数进行了一次转化,以得到预期结果,另外通过在查询字段列表里进行转化验证,可以看到 PY 字段对应 NAME 的拼音简写转化。

函数实现

打开SQL SERVER 查询分析器,执行如下代码:

create function [dbo].[GetPY](@str varchar(500))
returns varchar(500)
as
begin
   declare @cyc int,@length int,@str1 varchar(100),@charcate varbinary(20)
   set @cyc=1--从第几个字开始取
   set @length=len(@str)--输入汉字的长度
   set @str1=''--用于存放返回值
   while @cyc=0XB0A1 and @charcate=0XB0C5 and @charcate=0XB2C1 and @charcate=0XB4EE and @charcate=0XB6EA and @charcate=0XB7A2 and @charcate=0XB8C1 and @charcate=0XB9FE and @charcate=0XBBF7 and @charcate=0XBFA6 and @charcate=0XC0AC and @charcate=0XC2E8 and @charcate=0XC4C3 and @charcate=0XC5B6 and @charcate=0XC5BE and @charcate=0XC6DA and @charcate=0XC8BB and @charcate=0XC8F6 and @charcate=0XCBFA and @charcate=0XCDDA and @charcate=0XCEF4 and @charcate=0XD1B9 and @charcate=0XD4D1 and @charcate
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]