过滤所有非数字的字符

从一字符串中,过滤所有非数字的字符,留下数字。循环所有字符,使用正则[0-9]来匹配。

 

set ansi_nulls on
go

set quoted_identifier on
go

-- =============================================
-- author:      insus.net
-- create date: 2019-05-14
-- update date: 2019-05-14
-- description: 过滤所有非数字的字符
create function [dbo].[svf_digitalonly] ( 
    @originalstring nvarchar(max)
)
returns nvarchar(max)
as
begin
    declare @tstr nvarchar(max) = n'', @i int = 1
    while @i <= len(@originalstring) 
    begin 
        set @tstr = @tstr + case when substring(@originalstring, @i, 1) like '[0-9]' then substring(@originalstring, @i, 1) else n'' end 
   
        set @i = @i + 1 
    end

    return @tstr
end
go

 

试试执行函数:

 

 

扩展知识,如果保留字母呢,那可以把上面函数中的正则表达式[0-9]改为[a-za-z]即可。

 

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐