首页 > 代码库 > sql自动生成汉语拼音和首字母函数[转载]

sql自动生成汉语拼音和首字母函数[转载]

/*
 根据汉字获取全拼
 1.生成所有读音临时表
 2.根据Chinese_PRC_CS_AS_KS_WS 排序获取读音
*/
CREATE function f_GetPying(@str varchar(100))
returns varchar(8000)
as
begin
 declare @re varchar(8000)
 --生成临时表
 declare @t table(chr nchar(1) collate  Chinese_PRC_CS_AS_KS_WS,py nvarchar(20)) 
 insert into @t select,a 
 insert into @t select,aes 
 insert into @t select,ai 
 insert into @t select,an 
 insert into @t select,ang 
 insert into @t select,ao 
 insert into @t select,ba 
 insert into @t select,bai 
 insert into @t select,baike 
 insert into @t select,baiwa 
 insert into @t select,ban 
 insert into @t select,bang 
 insert into @t select,bao 
 insert into @t select,be 
 insert into @t select,bei 
 insert into @t select,ben 
 insert into @t select,beng 
 insert into @t select,bi 
 insert into @t select,bian 
 insert into @t select,uu 
 insert into @t select,biao 
 insert into @t select,bie 
 insert into @t select,bin 
 insert into @t select,bing 
 insert into @t select,bo 
 insert into @t select,bu 
 insert into @t select,ca 
 insert into @t select,cai 
 insert into @t select,cal 
 insert into @t select,can 
 insert into @t select,cang 
 insert into @t select,cao 
 insert into @t select,ce 
 insert into @t select,cen 
 insert into @t select,ceng 
 insert into @t select,ceok 
 insert into @t select,ceom 
 insert into @t select,ceon 
 insert into @t select,ceor 
 insert into @t select,cha 
 insert into @t select,chai 
 insert into @t select辿,chan 
 insert into @t select,chang 
 insert into @t select,chao 
 insert into @t select,che 
 insert into @t select,chen 
 insert into @t select,cheng 
 insert into @t select,chi 
 insert into @t select,chong 
 insert into @t select,chou 
 insert into @t select,chu 
 insert into @t select,chuai 
 insert into @t select,chuan 
 insert into @t select,chuang 
 insert into @t select,chui 
 insert into @t select,chun 
 insert into @t select,chuo 
 insert into @t select,ci 
 insert into @t select,cis 
 insert into @t select,cong 
 insert into @t select,cou 
 insert into @t select,cu 
 insert into @t select,cuan 
 insert into @t select,cui 
 insert into @t select,cun 
 insert into @t select,cuo 
 insert into @t select,chua 
 insert into @t select,da 
 insert into @t select,dai 
 insert into @t select,dan 
 insert into @t select,dang 
 insert into @t select,dao 
 insert into @t select,de 
 insert into @t select,dem 
 insert into @t select,den 
 insert into @t select,deng 
 insert into @t select,di 
 insert into @t select,dia 
 insert into @t select,dian 
 insert into @t select,diao 
 insert into @t select,die 
 insert into @t select,dei 
 insert into @t select,dim 
 insert into @t select,ding 
 insert into @t select,diu 
 insert into @t select,dong 
 insert into @t select,dou 
 insert into @t select,du 
 insert into @t select,duan 
 insert into @t select,dug 
 insert into @t select,dui 
 insert into @t select,dun 
 insert into @t select,duo 
 insert into @t select,e 
 insert into @t select,en 
 insert into @t select,eng 
 insert into @t select,eo 
 insert into @t select,eol 
 insert into @t select,eos 
 insert into @t select,er 
 insert into @t select,fa 
 insert into @t select,fan 
 insert into @t select,fang 
 insert into @t select,fei 
 insert into @t select,fen 
 insert into @t select,feng 
 insert into @t select,fenwa 
 insert into @t select,fiao 
 insert into @t select,fo 
 insert into @t select,fou 
 insert into @t select,fu 
 insert into @t select,fui 
 insert into @t select,ga 
 insert into @t select,gai 
 insert into @t select,gan 
 insert into @t select,gang 
 insert into @t select,gao 
 insert into @t select,ge 
 insert into @t select,gei 
 insert into @t select,gen 
 insert into @t select,geng 
 insert into @t select,geu 
 insert into @t select,gib 
 insert into @t select,go 
 insert into @t select,gong 
 insert into @t select,gongfen 
 insert into @t select,gongli 
 insert into @t select,gou 
 insert into @t select,gu 
 insert into @t select,gua 
 insert into @t select,guai 
 insert into @t select,guan 
 insert into @t select,guang 
 insert into @t select,gui 
 insert into @t select,gun 
 insert into @t select,guo 
 insert into @t select,ha 
 insert into @t select,hai 
 insert into @t select,hal 
 insert into @t select,han 
 insert into @t select,hang 
 insert into @t select,hao 
 insert into @t select,haoke 
 insert into @t select,he 
 insert into @t select,hei 
 insert into @t select,hen 
 insert into @t select,heng 
 insert into @t select,heui 
 insert into @t select,ho 
 insert into @t select,hol 
 insert into @t select,hong 
 insert into @t select,hou 
 insert into @t select,hu 
 insert into @t select,hua 
 insert into @t select,huai 
 insert into @t select,huan 
 insert into @t select,huang 
 insert into @t select,hui 
 insert into @t select,hun 
 insert into @t select,huo 
 insert into @t select,geo 
 insert into @t select,hwa 
 insert into @t select,ji 
 insert into @t select,jia 
 insert into @t select,jialun 
 insert into @t select,jian 
 insert into @t select,jiang 
 insert into @t select,jiao 
 insert into @t select,jie 
 insert into @t select,jin 
 insert into @t select,jing 
 insert into @t select,jiong 
 insert into @t select,jiu 
 insert into @t select,jou 
 insert into @t select,ju 
 insert into @t select,juan 
 insert into @t select,jue 
 insert into @t select,jun 
 insert into @t select,ka 
 insert into @t select,kai 
 insert into @t select,kal 
 insert into @t select,kan 
 insert into @t select,hem 
 insert into @t select,kang 
 insert into @t select,kao 
 insert into @t select,ke 
 insert into @t select,ken 
 insert into @t select,keng 
 insert into @t select,keo 
 insert into @t select,keol 
 insert into @t select,keos 
 insert into @t select,keum 
 insert into @t select,ki 
 insert into @t select,kong 
 insert into @t select,kos 
 insert into @t select,kou 
 insert into @t select,ku 
 insert into @t select,kua 
 insert into @t select,kuai 
 insert into @t select,kuan 
 insert into @t select,kuang 
 insert into @t select,kui 
 insert into @t select,kun 
 insert into @t select,kuo 
 insert into @t select,kweok 
 insert into @t select,la 
 insert into @t select,lai 
 insert into @t select,lan 
 insert into @t select,lang 
 insert into @t select,lao 
 insert into @t select,le 
 insert into @t select,lei 
 insert into @t select,leng 
 insert into @t select,li 
 insert into @t select,lia 
 insert into @t select,lian 
 insert into @t select,liang 
 insert into @t select,liao 
 insert into @t select,lie 
 insert into @t select,lin 
 insert into @t select,ling 
 insert into @t select,liu 
 insert into @t select,liwa 
 insert into @t select,lo 
 insert into @t select,long 
 insert into @t select,lou 
 insert into @t select,lu 
 insert into @t select,lv 
 insert into @t select,lue 
 insert into @t select,luan 
 insert into @t select,lun 
 insert into @t select,luo 
 insert into @t select,m 
 insert into @t select,ma 
 insert into @t select,hweong 
 insert into @t select,mai 
 insert into @t select,man 
 insert into @t select,mang 
 insert into @t select,mangmi 
 insert into @t select,mao 
 insert into @t select,mas 
 insert into @t select,me 
 insert into @t select,mei 
 insert into @t select,men 
 insert into @t select,meng 
 insert into @t select,meo 
 insert into @t select,mi 
 insert into @t select,mian 
 insert into @t select,miao 
 insert into @t select,mie 
 insert into @t select,miliklanm 
 insert into @t select,min 
 insert into @t select,lem 
 insert into @t select,ming 
 insert into @t select,miu 
 insert into @t select,mo 
 insert into @t select,mol 
 insert into @t select,mou 
 insert into @t select,mu 
 insert into @t select,myeo 
 insert into @t select,myeon 
 insert into @t select,myeong 
 insert into @t select,na 
 insert into @t select,nai 
 insert into @t select,nan 
 insert into @t select,nang 
 insert into @t select,keg 
 insert into @t select,nao 
 insert into @t select,ne 
 insert into @t select,nei 
 insert into @t select,nem 
 insert into @t select,nen 
 insert into @t select,neus 
 insert into @t select,ngag 
 insert into @t select,ngai 
 insert into @t select,ngam 
 insert into @t select,ni 
 insert into @t select,nian 
 insert into @t select,niang 
 insert into @t select,niao 
 insert into @t select,nie 
 insert into @t select,nin 
 insert into @t select,ning 
 insert into @t select,niu 
 insert into @t select,nong 
 insert into @t select,nou 
 insert into @t select,nu 
 insert into @t select,nv 
 insert into @t select,nue 
 insert into @t select,nve 
 insert into @t select,nuan 
 insert into @t select,nun 
 insert into @t select,nung 
 insert into @t select,nuo 
 insert into @t select,o 
 insert into @t select,oes 
 insert into @t select,ol 
 insert into @t select,on 
 insert into @t select,ou 
 insert into @t select,pa 
 insert into @t select,pai 
 insert into @t select,pak 
 insert into @t select,pan 
 insert into @t select,pang 
 insert into @t select,pao 
 insert into @t select,pei 
 insert into @t select,pen 
 insert into @t select,peng 
 insert into @t select,peol 
 insert into @t select,phas 
 insert into @t select,phdeng 
 insert into @t select,phoi 
 insert into @t select,phos 
 insert into @t select,pi 
 insert into @t select,pian 
 insert into @t select,piao 
 insert into @t select,pie 
 insert into @t select丿,pianpang 
 insert into @t select,pin 
 insert into @t select,ping 
 insert into @t select,po 
 insert into @t select,pou 
 insert into @t select,deo 
 insert into @t select,ppun 
 insert into @t select,pu 
 insert into @t select,qi 
 insert into @t select,qia 
 insert into @t select,qian 
 insert into @t select,qiang 
 insert into @t select,qianke 
 insert into @t select,qianwa 
 insert into @t select,qiao 
 insert into @t select,qie 
 insert into @t select,qin 
 insert into @t select,kem 
 insert into @t select,qing 
 insert into @t select,qiong 
 insert into @t select,qiu 
 insert into @t select,qu 
 insert into @t select,keop 
 insert into @t select,quan 
 insert into @t select,que 
 insert into @t select,qun 
 insert into @t select,ra 
 insert into @t select,ram 
 insert into @t select,ran 
 insert into @t select,rang 
 insert into @t select,rao 
 insert into @t select,re 
 insert into @t select,ren 
 insert into @t select,reng 
 insert into @t select,ri 
 insert into @t select,rong 
 insert into @t select,rou 
 insert into @t select嶿,ru 
 insert into @t select,ruan 
 insert into @t select,rui 
 insert into @t select,run 
 insert into @t select,ruo 
 insert into @t select,sa 
 insert into @t select,saeng 
 insert into @t select,sai 
 insert into @t select,sal 
 insert into @t select,san 
 insert into @t select,sang 
 insert into @t select,sao 
 insert into @t select,se 
 insert into @t select,sed 
 insert into @t select,sei 
 insert into @t select,sen 
 insert into @t select,seng 
 insert into @t select,seo 
 insert into @t select,seon 
 insert into @t select,sha 
 insert into @t select,shai 
 insert into @t select,shan 
 insert into @t select,shang 
 insert into @t select,shao 
 insert into @t select,she 
 insert into @t select,shen 
 insert into @t select,sheng 
 insert into @t select,shi 
 insert into @t select,shike 
 insert into @t select,shiwa 
 insert into @t select,shou 
 insert into @t select,shu 
 insert into @t select,shua 
 insert into @t select,shuai 
 insert into @t select,shuan 
 insert into @t select,shuang 
 insert into @t select,shei 
 insert into @t select,shui 
 insert into @t select,shun 
 insert into @t select,shuo 
 insert into @t select,si 
 insert into @t select,so 
 insert into @t select,sol 
 insert into @t select,song 
 insert into @t select,sou 
 insert into @t select,su 
 insert into @t select,suan 
 insert into @t select,sui 
 insert into @t select,sun 
 insert into @t select,suo 
 insert into @t select,ta 
 insert into @t select,tae 
 insert into @t select,tai 
 insert into @t select,tan 
 insert into @t select,tang 
 insert into @t select,tao 
 insert into @t select,tap 
 insert into @t select,te 
 insert into @t select,teng 
 insert into @t select,teo 
 insert into @t select,teul 
 insert into @t select,ti 
 insert into @t select,tian 
 insert into @t select,tiao 
 insert into @t select,tie 
 insert into @t select,ting 
 insert into @t select,tol 
 insert into @t select,tong 
 insert into @t select,tou 
 insert into @t select,tu 
 insert into @t select,tuan 
 insert into @t select,tui 
 insert into @t select,tun 
 insert into @t select,tuo 
 insert into @t select,wa 
 insert into @t select,wai 
 insert into @t select,wan 
 insert into @t select,wang 
 insert into @t select,wei 
 insert into @t select,wen 
 insert into @t select,weng 
 insert into @t select,wo 
 insert into @t select,wu 
 insert into @t select,xi 
 insert into @t select,ei 
 insert into @t select,xia 
 insert into @t select,xian 
 insert into @t select,xiang 
 insert into @t select,xiao 
 insert into @t select,xie 
 insert into @t select,xin 
 insert into @t select,xing 
 insert into @t select,xiong 
 insert into @t select,xiu 
 insert into @t select,xu 
 insert into @t select,xuan 
 insert into @t select,xue 
 insert into @t select,xun 
 insert into @t select,ya 
 insert into @t select,yan 
 insert into @t select,eom 
 insert into @t select,yang 
 insert into @t select,yao 
 insert into @t select,ye 
 insert into @t select,yen 
 insert into @t select,yi 
 insert into @t select,i 
 insert into @t select,yin 
 insert into @t select,ying 
 insert into @t select,yo 
 insert into @t select,yong 
 insert into @t select,you 
 insert into @t select,yu 
 insert into @t select,yuan 
 insert into @t select,yue 
 insert into @t select,yun 
 insert into @t select,za 
 insert into @t select,zai 
 insert into @t select,zan 
 insert into @t select,zang 
 insert into @t select,zao 
 insert into @t select,ze 
 insert into @t select,zei 
 insert into @t select,zen 
 insert into @t select,zeng 
 insert into @t select,zha 
 insert into @t select,gad 
 insert into @t select,zhai 
 insert into @t select,zhan 
 insert into @t select,zhang 
 insert into @t select,zhao 
 insert into @t select,zhe 
 insert into @t select,zhen 
 insert into @t select,zheng 
 insert into @t select,zhi 
 insert into @t select,zhong 
 insert into @t select,zhou 
 insert into @t select,zhu 
 insert into @t select,zhua 
 insert into @t select,zhuan 
 insert into @t select,zhuai 
 insert into @t select,zhuang 
 insert into @t select,zhui 
 insert into @t select,zhun 
 insert into @t select,zhuo 
 insert into @t select,zi 
 insert into @t select,zo 
 insert into @t select,zong 
 insert into @t select,zou 
 insert into @t select,zu 
 insert into @t select,zuan 
 insert into @t select,zui 
 insert into @t select,zun 
 insert into @t select,zuo 
 
 declare @strlen int 
 select @strlen=len(@str),@re=‘‘
 while @strlen>0
 begin     
      select top 1 @re=UPPER(substring(py,1,1) )+substring(py,2,len(py))+@re,@strlen=@strlen-1 
      from @t a where chr<=substring(@str,@strlen,1) 
      order by chr collate Chinese_PRC_CS_AS_KS_WS  desc 
      if @@rowcount=0
        select @re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1
   end
 return(@re)
end
SELECT dbo.fn_GetPying(中文字段) AS pymc
--生成拼音首码  
  CREATE  function  fn_GetPy(@str  nvarchar(4000))  
  returns  nvarchar(4000)  
  --WITH  ENCRYPTION  
  as  
  begin  
  declare  @intLen int  
  declare  @strRet nvarchar(4000)  
  declare  @temp  nvarchar(100)  
  set  @intLen  =  len(@str)  
  set  @strRet  =  ‘‘  
  while  @intLen  >  0  
  begin  
  set  @temp  =  ‘‘  
  select  @temp  =  case    
  when  substring(@str,@intLen,1)  >=    then  Z  
  when  substring(@str,@intLen,1)  >=    then  Y  
  when  substring(@str,@intLen,1)  >=    then  X  
  when  substring(@str,@intLen,1)  >=    then  W  
  when  substring(@str,@intLen,1)  >=    then  T  
  when  substring(@str,@intLen,1)  >=    then  S  
  when  substring(@str,@intLen,1)  >=    then  R  
  when  substring(@str,@intLen,1)  >=    then  Q  
  when  substring(@str,@intLen,1)  >=    then  P  
  when  substring(@str,@intLen,1)  >=    then  O  
  when  substring(@str,@intLen,1)  >=    then  N  
  when  substring(@str,@intLen,1)  >=    then  M  
  when  substring(@str,@intLen,1)  >=    then  L  
  when  substring(@str,@intLen,1)  >=    then  K  
  when  substring(@str,@intLen,1)  >=    then    J  
  when  substring(@str,@intLen,1)  >=    then  H  
  when  substring(@str,@intLen,1)  >=    then  G  
  when  substring(@str,@intLen,1)  >=    then  F  
  when  substring(@str,@intLen,1)  >=    then  E  
  when  substring(@str,@intLen,1)  >=    then  D  
  when  substring(@str,@intLen,1)  >=    then  C  
  when  substring(@str,@intLen,1)  >=    then  B  
  when  substring(@str,@intLen,1)  >=    then  A  
  else  rtrim(ltrim(substring(@str,@intLen,1)))  
  end  
  --对于汉字特殊字符,不生成拼音码  
  if  (ascii(@temp)>127)  set  @temp  =  ‘‘  
  --对于英文中小括号,不生成拼音码  
  if  @temp  =  (  or  @temp  =  )  set  @temp  =  ‘‘  
  select  @strRet  =  @temp  +  @strRet  
  set  @intLen  =  @intLen  -  1  
  end  
  return  lower(@strRet)  
  end  
SELECT dbo.fn_GetPy(中文字段) AS pymc

 

sql自动生成汉语拼音和首字母函数[转载]