按首字母查所有城市.net

来源:互联网 发布:09年总决赛科比数据 编辑:程序博客网 时间:2024/06/05 06:38

create   function   f_GetPy(@str   nvarchar(4000))  
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   into   @t(chr,letter)  
      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 * from city where left(dbo.f_GetPy(cityname),1)   =   't'