CREATE function fGetPy(@str varchar(500)='') returns varchar(500) as begin declare @strlen int,@return varchar(500),@ii int declare @c nchar(1),@chn nchar(1) select @strlen=len(@str),@return='',@ii=0 set @ii=0 while @ii<@strlen begin select @ii=@ii+1,@chn=substring(@str,@ii,1) if @chn>='吖' select @c = char(count(*)+63) 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 where b.chn <=@chn else set @c=@chn set @return=@return+@c end return(@return) end