create proc p_getstr( @s varchar(8000),---- 测试串 @new varchar(8000) output--- 输出串)as declare @pos int ---定义位置参数set @pos=patindex('%[a-z]%',@s) ------FU值,目的用来下面的WHILE判断set @new='' -----FU值while @pos>0 begin set @pos=patindex('%[a-z]%',@s) -----这一句搞了大半天,我以前理解不写这个的,如不写这条语句,死CIRLCE select @new=@new+substring(@s,@pos,1), @s=stuff(@s,1,@pos,'') end select @new ----一定在BEGIN END外写这一条语句,为两种情况go---------------------------------------------------------------------------------------调用存储过程-------------------declare @new varchar(8000) exec p_getstr '命a已T成the功145完t2成',@new outputprint @new