获得汉字字符串的首字母(T-SQL函数)

函数|汉字|字符串

/*--获得汉字字符串的首字母--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fGetPy]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fGetPy]
GO

--创建取拼音函数
create function fGetPy(@Str varchar(500)='')
returns varchar(500)
as
begin--函数实现开始

 declare @strlen int,@return varchar(500),@ii int
 declare @n int,@c char(1),@chn nchar(1) 
 select @strlen=len(@str),@return='',@ii=0
 set @ii=0
 
 
 while @ii<@strlen
 begin--while循环开始
  select @ii=@ii+1,@n=63,@chn=substring(@str,@ii,1)
  
  if @chn>'z'--if开始
   --此处只有一个 select 语句,原理以“字符串排序以及ASCII码表”:
   select @n = @n +1,@c =    --★★★select★★★
    case chn --case开始
     when @chn then char(@n) --case分支
     else @c --case分支
     end --case结束
   from(  --★★★from★★★
   select top 27 * from (
   select chn = '吖'
   union all select '八'
   union all select '嚓'
   union all select '咑'
   union all select '妸'
   union all select '发'
   union all select '旮'
   union all select '铪'
   union all select '丌' --because have no 'i'
   union all select '丌'
   union all select '咔'
   union all select '垃'
   union all select '嘸'
   union all select '拏'
   union all select '噢'
   union all select '妑'
   union all select '七'
   union all select '呥'
   union all select '仨'
   union all select '他'
   union all select '屲' --no 'u'
   union all select '屲' --no 'v'
   union all select '屲'
   union all select '夕'
   union all select '丫'
   union all select '帀'
   union all select @chn) as a
   order by chn COLLATE Chinese_PRC_CI_AS
   ) as b  
  
  else --if对应的else 
   set @c=@chn 
  --if结束

  set @return=@return+@c
 end--while循环结束
 

 return(@return)
end--函数实现结束

go
--测试
select dbo.fgetpy('魏保光') as 姓名拼音,dbo.fgetpy('ab中c国人') as 中国人
select dbo.fgetpy('刘子良') as 姓名拼音,dbo.fgetpy('ab中c国人') as 中国人
select dbo.fgetpy('吴过') as 姓名拼音,dbo.fgetpy('ab中c国人') as 中国人
select dbo.fgetpy('东北') as 姓名拼音,dbo.fgetpy('ab中c国人') as 中国人
select dbo.fgetpy('王大海八丫') as 王大海八丫,dbo.fgetpy('服務地圖') as 服務地圖

--删除拼音函数
drop function fgetpy

时间: 2024-10-28 01:56:07

获得汉字字符串的首字母(T-SQL函数)的相关文章

获得汉字字符串拼音首字母 C#版

汉字|拼音|字符串 获取字符串中的汉字拼音首字母(根据http://blog.csdn.net/iwebsms/archive/2004/09/28/119851.aspx修改) 可能代码比较臃肿,希望有朋友再帮忙改正 //返回给定字符串的首字母 private String IndexCode(String IndexTxt) { String _Temp=null; for(int i=0;i<IndexTxt.Length;i++) _Temp = _Temp + GetOneIndex(

DB2中创建一个获取汉字拼音首字母的SQL函数

有些时候我们会有这样的需求,要求使用字母从a至z对一组数据进行索引,如果数据的格式全部是半角的英文则很容易实现,但若是对一组中文数据进行索引则会引起一点小的麻烦,数据在录入数据库的时候可能并没有指定一个索引字母,这就要求应用程序可以自动生成用于索引的信息. 一般对于中文数据的索引,采用词组的首汉字拼音的首字母,例如: 词组 索引字母 --- ----- 熊猫 x 白暨豚 b 藏野驴 z 在DB2中并没有提供相应的函数可以取得汉字拼音的首字母,我们可以利用数据库针对中文字符集的排序功能创建一个这样

获得汉字字符串的首字母

--*/if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fGetPy]') and xtype in (N'FN', N'IF', N'TF'))drop function [dbo].[fGetPy]GO--创建取拼音函数create function fGetPy(@Str varchar(500)='')returns varchar(500)asbegin    declare @strlen i

在PostgreSQL中实现按拼音、汉字、拼音首字母搜索的例子

在PostgreSQL中实现按拼音.汉字.拼音首字母搜索的例子 作者 digoal 日期 2016-11-09 标签 PostgreSQL , 拼音 , 中文分词 , tsvector , 拼音首字母 , hmm , 词库 背景 PostgreSQL有很多特性是可以提升开发效率,提高生产力的. 在前端页面中,搜索是一个非常常用的功能,例如淘宝首页的搜索. 为了提升用户体验,用户可以按拼音首字母进行搜索,按中文单词搜索,或者按拼音的全部进行搜索. 又比如家里的电视盒子,因为没有实体键盘,按拼音首字

MySQL数据库获取汉字拼音的首字母函数

原文:MySQL数据库获取汉字拼音的首字母函数 需求简介:最近的一个项目,想实现如下图所示的显示效果.很明显,如果能够获取对应的汉字词组的拼音首字母就可以实现了,如果是固定的几个汉字,人为的拼一下就可以了,不过项目中有多处功能是需要这个效果的,并且事先也不知道对应的汉字是什么,所以就需要一个函数来完成这件事情了,根据网上查询的资料自己改进了一个函数实现的效果,现分享如下. 1:测试环境      1-1:测试工具的信息           1-2:测试数据库的信息      2:测试数据    

ASP.NET 根据汉字获取汉字拼音的首字母(含多音字)_实用技巧

在很多时候,我们需要将汉字的拼音首字母存储到数据库,以便我们能通过首字母进行快速的查询,常见的有百度搜索,你只要输入拼音的首字母,就会出现相关的搜索的关键词,再比如一些办公系统中,查询一个人的姓名,为了简单方便,只输这个人的名字的首字母,就能快速检索. 话不多说,代码分享给大家: #region 获取汉字转换拼音 首字母 public string MkPinyinString(string HanZiStr) //获取汉字字符串的拼音首字母,含多音字 { int i, j, k, m; str

用Java将字符串的首字母转换大小写_java

话不多说,直接上代码 //首字母转小写 public static String toLowerCaseFirstOne(String s){ if(Character.isLowerCase(s.charAt(0))) return s; else return (new StringBuilder()).append(Character.toLowerCase(s.charAt(0))).append(s.substring(1)).toString(); } //首字母转大写 public

wp手机开发之获取汉字拼音的首字母

今天介绍一种新的方法,使用codeplex上开源的项目GB2312 for Silverlight. 1.创建一个项目,命名为mangoGB2312 2.将GB2312 for Silverlight项目中的两个文件都拷贝至项目目录GB2312下,并且修改GB2312Encoding.cs的命名空间为mangoGB2312.GB2312,如下图所示 开发之获取汉字拼音的首字母 -js获取汉字拼音首字母"> 3.将gb2312.bin的生成方式修改为嵌入式资源,如下图 4.编写提取汉字首字母

取得汉字字符串的首字母串

此功能一般用来生成姓名的首字母简写,比如说我今天下午写程序的时候就要用,对于国标码的很简单,因为其ANSII编码是按汉字拼音首字母顺序排列的,只要查出汉字的ANSII值,再对比一下范围就可以了.但是问题是,我用的是UTF-8编码,而UNICODE的汉字编码毫无规则可言,这可愁坏人了,如果用中文的操作系统的话,装了MSSQL,可以从MSSQL的系统表里把这个对应关系select 出来,但是我现在用AC数据库,犯不着去为了查个字母就动MSSQL,所以最需要的还是一张UNICODE的汉字编码对照表.U