Heim  >  Artikel  >  Datenbank  >  获取中文名称的首字母

获取中文名称的首字母

WBOY
WBOYOriginal
2016-06-07 14:54:531309Durchsuche

用于获取中文名称的首字母 拼音 SQL Server CREATE FUNCTION getPinYin (@str varchar(500) = '') RETURNS varchar(500) AS /*-------------------用于获取中文名称的首字母---------------------------------*/BEGIN Declare @strlen int, @return varchar(5

用于获取中文名称的首字母 拼音 SQL Server
CREATE FUNCTION  getPinYin (@str varchar(500) = '')  
RETURNS varchar(500)  AS  

/*-------------------用于获取中文名称的首字母---------------------------------*/
BEGIN 
Declare @strlen int,
  @return varchar(500),
  @ii int,
  @c char(1),
  @chn nchar(1)
 --//初始化变量 
	 Declare @pytable table(
	 chn char(2) COLLATE Chinese_PRC_CS_AS NOT NULL,
	 py char(1) COLLATE Chinese_PRC_CS_AS NULL,
	 PRIMARY KEY (chn) 
	   )
	 insert into @pytable values('吖', 'A')
	 insert into @pytable values('八', 'B')
	 insert into @pytable values('嚓', 'C')
	 insert into @pytable values('咑', 'D')
	 insert into @pytable values('妸', 'E')
	 insert into @pytable values('发', 'F')
	 insert into @pytable values('旮', 'G')
	 insert into @pytable values('铪', 'H')
	 --insert into @pytable values('丌', 'I')
	 insert into @pytable values('丌', 'J')
	 insert into @pytable values('咔', 'K')
	 insert into @pytable values('垃', 'L')
	 insert into @pytable values('嘸', 'M')
	 insert into @pytable values('拏', 'N')
	 insert into @pytable values('噢', 'O')
	 insert into @pytable values('妑', 'P')
	 insert into @pytable values('七', 'Q')
	 insert into @pytable values('呥', 'R')
	 insert into @pytable values('仨', 'S')
	 insert into @pytable values('他', 'T')
	 --insert into @pytable values('屲', 'U')
	 --insert into @pytable values('屲', 'V')
	 insert into @pytable values('屲', 'W')
	 insert into @pytable values('夕', 'X')
	 insert into @pytable values('丫', 'Y')
	 insert into @pytable values('帀', 'Z')

 select @strlen = len(@str), @return = '', @ii = 0 
 --//循环整个字符串,用拼音的首字母替换汉字 
 while @ii < @strlen 
 begin
  select @ii = @ii + 1, @chn = substring(@str, @ii, 1)
     if @chn > 'z' --//检索输入的字符串中有中文字符
	   SELECT @c = max(py)
	   FROM @pytable
	   where chn <= @chn
    else
         set @c=@chn
 
  set @return=@return+@c 
 end
 return @return
END


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn