关于sql中字符串中取数字问题
2008-03-26 21:24
381 查看
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
@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
相关文章推荐
- sql,关于数字标题的问题
- 关于各种字符串转化和数字和字符串转化的问题
- SQL语句中关于字符串的拼接问题
- 关于jQuery.inArray(),字符串数组中不可能找到数字问题
- 一个关于取字符串中数字和字符的逻辑问题
- php下关于中英数字混排的字符串分割问题
- Related to Oracle SQL 关于检验字符串是否为数字类型的方法
- MySQL关于字符串中数字排序的问题分析
- 关于将字符串数字排序的面试问题
- SQL查询字符串和数字的一个问题
- php下关于中英数字混排的字符串分割问题
- 关于中英数字混排的字符串分割问题(转)
- 关于SQL查询的字符串类型字段的排序问题
- 一个关于sql语句的问题解决,包括:字符串拆分,游标
- SQL语句中关于字符串的拼接问题
- MySQL关于字符串中数字排序的问题分析
- 关于 rs.Open SQL_str,conn,1,2 中数字的问题
- 关于sql 拼接字符串的问题
- 关于java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的字符串或缓冲区长度问题
- 关于中英数字混排的字符串分割问题