declare @sql_gg varchar(255)
set @sql_gg='1b2d3*45345'
select left(@sql_gg,charIndex('*',@sql_gg)-1)) as test结果:
test
----
123
--我要截取的是字符串 "*"以前的数字
set @sql_gg='1b2d3*45345'
select left(@sql_gg,charIndex('*',@sql_gg)-1)) as test结果:
test
----
123
--我要截取的是字符串 "*"以前的数字
@s varchar(2000)
)
returns varchar(200)
as
begin
declare @r varchar(200)
set @r=''
while PATINDEX('%[0-9]%',@s)>0
begin
set @r=@r+substring(@s,PATINDEX('%[0-9]%',@s),1)
set @s=stuff(@s,1,PATINDEX('%[0-9]%',@s),'')
end
return @r
end
go--调用
select dbo.fn_num('a2h5我j8 ')
godrop function fn_num
go
@s varchar(2000)
)
returns varchar(200)
as
begin
set @s= left(@s,charIndex('*',@s)-1) -- 加多这一行 declare @r varchar(200)
set @r=''
while PATINDEX('%[0-9]%',@s)>0
begin
set @r=@r+substring(@s,PATINDEX('%[0-9]%',@s),1)
set @s=stuff(@s,1,PATINDEX('%[0-9]%',@s),'')
end
return @r
end
go--调用
select dbo.fn_num('1b2d3*45345')
godrop function fn_num
go