当前位置: 移动技术网 > IT编程>数据库>MSSQL > 过滤所有非数字的字符

过滤所有非数字的字符

2019年05月15日  | 移动技术网IT编程  | 我要评论

推荐好电影,天津新华中学,孙叮咚

从一字符串中,过滤所有非数字的字符,留下数字。循环所有字符,使用正则[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]即可。

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网