关于sql中字符串中取数字问题

create procedure GetNumFromString
@str varchar(100)
as
declare @i int
declare @len int
declare @str1 varchar(100)
set @str1=''
set @len=len(@str)
set @i=1
while @i<=@len
begin
if isnumeric(substring(@str,@i,1))>0
begin
set @str1=@str1+substring(@str,@i,1)
end
else
begin
set @str1=@str1+','
end
set @i=@i+1
end
select  replace(@str1,',',' ')


GO
或者
declare @str varchar(100),@tmp varchar(101),@i int

set @str='sddfd123fddfd56fddf78'
set @tmp=@str+'a'

while patindex('%[0-9]%',@tmp)>0
begin
set @i=1
while 1=1
begin
if isnumeric(substring(@tmp,patindex('%[0-9]%',@tmp)+@i,1))=0 break
set @i=@i+1
end
print substring(@tmp,patindex('%[0-9]%',@tmp),@i)
set @tmp=stuff(@tmp,patindex('%[0-9]%',@tmp),@i,'')
end
posted @ 2008-03-26 21:24  翅膀  阅读(1467)  评论(2)    收藏  举报