您的位置:首页 > 编程语言 > Go语言

如何得到汉字的首拼码

2005-07-28 14:22 239 查看
建表:  
create  table  tabpy(id  int  identity,b_begin  varbinary(2),b_end  varbinary(2),word  varchar(2))  
insert  tabpy  select  0xB0A1,  0xB0C4,'A'  
union  all  select  0xB0C5,  0xB2C0,'B'  
union  all  select  0xB2C1,  0xB4ED,'C'  
union  all  select  0xB4EE,  0xB6E9,'D'  
union  all  select  0xB6EA,  0xB7A1,'E'  
union  all  select  0xB7A2,  0xB8C0,'F'  
union  all  select  0xB8C1,  0xB9FD,'G'  
union  all  select  0xB9FE,  0xBBF6,'H'  
union  all  select  0xBBF7,  0xBFA5,'J'  
union  all  select  0xBFA6,  0xC0AB,'K'  
union  all  select  0xC0AC,  0xC2E7,'L'  
union  all  select  0xC2E8,  0xC4C2,'M'  
union  all  select  0xC4C3,  0xC5B5,'N'  
union  all  select  0xC5B6,  0xC5BD,'O'  
union  all  select  0xC5BE,  0xC6D9,'P'  
union  all  select  0xC6DA,  0xC8BA,'Q'  
union  all  select  0xC8BB,  0xC8F5,'R'  
union  all  select  0xC8F6,  0xCBF9,'S'  
union  all  select  0xCBFA,  0xCDD9,'T'  
union  all  select  0xCDDA,  0xCEF3,'W'  
union  all  select  0xCEF4,  0xD1B8,'X'  
union  all  select  0xD1B9,  0xD4D0,'Y'  
union  all  select  0xD4D1,  0xD7F9,'Z'  
 
函数:  
create  function  getfirstpy(@a  varchar(200))  
returns  varchar(100)  
as    
begin  
declare  @i  int,@j  int,@result  varchar(100)  
set  @result=''  
set  @i=len(@a)  
set  @j=1  
   while  @j<=@i  
   begin  
     select  @result=@result+word  from  tabpy  where  cast(substring(@a,@j,1)  as  varbinary(2))  between  b_begin  and  b_end  
     set  @j=@j+1  
   end  
return  @result  
end    
 
语句:  
select  dbo.getfirstpy('中国人')  
--结果:  
ZGR  
 
---------------------------------------------------------------  
 
--可支持大字符集20000个汉字!  
 
create  function  f_ch2py(@chn  nchar(1))  
returns  char(1)  
as  
begin  
de
a4f2
clare  @n  int  
declare  @c  char(1)  
set  @n  =  63  
 
select  @n  =  @n  +1,  
             @c  =  case  chn  when  @chn  then  char(@n)  else  @c  end  
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  
'丌'  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  @chn)  as  a  
order  by  chn  COLLATE  Chinese_PRC_CI_AS    
)  as  b  
return(@c)  
end  
 
go  
 
select  dbo.f_ch2py('中')    --Z  
select  dbo.f_ch2py('国')    --G  
select  dbo.f_ch2py('人')    --R  
select  dbo.f_ch2py('镆')    --M
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  function c insert table go