Sql server如何得到汉字的声母

在sql中创建用户自定义拼音函数:
create function f_GetPy(@Str nvarchar(400))
returns nvarchar(4000)
as
begin
declare @strlen int,@re nvarchar(4000)
declare @t table(chr nchar(1) collate Chinese_PRC_CI_AS,letter nchar(1))
insert @t select '吖','A' union all select '八','B'
union all select '嚓','C' union all select '咑','D'
union all select '妸','E' union all select '发','F'
union all select '旮','G' union all select '铪','H'
union all select '丌','J' union all select '咔','K'
union all select '垃','L' union all select '嘸','M'
union all select '拏','N' union all select '噢','O'
union all select '妑','P' union all select '七','Q'
union all select '呥','R' union all select '仨','S'
union all select '他','T' union all select '屲','W'
union all select '夕','X' union all select '丫','Y'
union all select '帀','Z'

select @strlen=len(@str),@re=''
while @strlen>0
begin
select top 1 @re=letter+@re,@strlen=@strlen-1
from @t a where chr<=substring(@str,@strlen,1)
order by chr desc
if @@rowcount=0
select @re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1
end
return(@re)
end
go
--测试
select dbo.f_GetPy('东莞市') as 东莞市,dbo.f_GetPy('ab中c国人') as 中国人

--以后查询的时候,就可以调用上面的函数来实现汉字模糊查询

select * from 表 where dbo.f_getpy(字段)='zgyh'

时间: 2024-10-02 08:18:06

Sql server如何得到汉字的声母的相关文章

SQL Server中取汉字拼音的函数

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 un

SQL Server 2000 汉字数据简繁转换实例 (COM,.Net)

server|汉字|简繁转换|数据 SQL Server 2000 汉字数据简繁转换实例 (COM,.Net) 首先确认在 Windows (当然只是 SQL Server 的服务器端) 上安装了 .Net Framework 1.1 ! 确认成功安装后:1.用 sn -k 为该类库创建一个强名密钥文件: 在安装 Microsoft .Net Framework SDK 的所在目录下的 v1.1\Bin\ 子目录下执行如下命令行: sn.exe -k c:\snkey.snk 2.打开记事本(N

SQL Server编写函数获取汉字的拼音码

  SQL Server编写函数获取汉字的拼音码(首字母) 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

分清SQL Server中易混淆的数据类型

server|数据|数据类型 (1)char.varchar.text和nchar.nvarchar.ntextchar和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据.所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度:而变长字符数据则不会以空格填充.text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符.后面三种数据类型和

SQL SERVER 的命名规则

server 在SQL SERVER中标识符共有两种类型:一种是规则标识符(Regular identifer),一种是界定标识符(Delimited identifer). 其中,规则标识符严格遵守标识符的有关格式的规定,所以在Transact_SQL中凡是规则运算符都不必使用定界符.对于不符合标识符格式的标识符要使用界定符[]或' '. 标识符格式: 1.标识符必须是统一码(Unicode)2.0标准中规定的字符,以及其他一些语言字符.如汉字.                 2.标识符后的

SQL Server 中易混淆的数据类型

server|数据|数据类型 (1)char.varchar.text和nchar.nvarchar.ntextchar和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据.所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度:而变长字符数据则不会以空格填充.text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符. 后面三种数据类型

SQL SERVER的命名规则

server 在SQL SERVER中标识符共有两种类型:一种是规则标识符(Regular identifer),一种是界定标识符(Delimited identifer). 其中,规则标识符严格遵守标识符的有关格式的规定,所以在Transact_SQL中凡是规则运算符都不必使用定界符.对于不符合标识符格式的标识符要使用界定符[]或' '. 标识符格式: 1.标识符必须是统一码(Unicode)2.0标准中规定的字符,以及其他一些语言字符.如汉字.         2.标识符后的字符可以是(除条

MS SQL Server数据库查询优化及分页算法

server|分页|数据|数据库|算法|优化 探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的"红头文件"一表的部分数据结构:CREATE TABLE [dbo].[TGongwen] (    --TGongwen是红头文件表名    [Gid] [int] IDENTITY (1, 1) NOT NULL ,--本表的id号,也是主键    [title] [varchar] (80) COLLATE

MS SQL Server 2000 中文模糊搜寻存储过程及函数

server|存储过程|函数|中文 这些存储过程/函数可以在 MS SQL Server 2000 里使用,包含两组存储过程, 这两组函数的功能相同, 只是适用的汉字内码范围不同.这些存储过程及函数支持 GBK (大陆简体中文及繁体中文) 和 BIG5 内码 (台湾及香港等的繁体中文)这些函数将直接用在 SQL 语句里, 使用非常方便.可以按照含有读音相近的文字进行查找, 可以处理多音字, 可以查找含有某个相近读音的字的记录, 在查找姓名时特别有用.这些存储过程全部用 C++ Builder 编