create function get_chinese(@str varchar(50))
returns varchar(50)
as
begindeclare @flag int,@nlen int,@temp int
set @flag=1
set @temp =1
set @nlen=len(@str)
while @flag<=@nlen
begin
if ascII(substring(@str,@flag,1)) between 133 and 223
begin
set @flag=@flag+1
set @temp=@flag
end
else
begin
set @str=stuff(@str,@flag,1,'') --删除字符
set @flag=@temp
end
endreturn @str
enddeclare @s varchar(50)
set @s='dfdf对方78额52的548'
select dbo.get_chinese(@s)
--执行函数的时候奇慢而且没有结果,帮我看一下是什么问题,
--这个函数是从下面这段代码改过来的
declare @s varchar(100),@i int,@s2 varchar(100)
set @s='111中国aaaw的'
set @i=1while @i<=len(@s)
begin
if ascII(substring(@s,@i,1)) between 133 and 223
set @i=@i+1
else
begin
set @s = stuff(@s,@i,1,'')
set @i = 1
end
end
select @s
--运行没有问题
--作者:狙击手,
@flag<=@nlen 永远成立,死循环,骇
没问题分照样给,
top 20 一人一分,我不算