SQLServer删除字符串中所有非字母字符

作者: 平淡人生 分类: SQL 发布时间: 2019-08-13 18:35

1.自定义个函数

CREATE FUNCTION [dbo].[fn_StripCharacters]
(
    @String NVARCHAR(MAX), 
    @MatchExpression VARCHAR(255)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
    SET @MatchExpression =  '%['+@MatchExpression+']%'

    WHILE PatIndex(@MatchExpression, @String) > 0
        SET @String = Stuff(@String, PatIndex(@MatchExpression, @String), 1, '')

    RETURN @String

END

2.引用方法

仅按字母顺序:

SELECT dbo.fn_StripCharacters('a1!s2@d3#f4$', '^a-z')

仅数字:

SELECT dbo.fn_StripCharacters('a1!s2@d3#f4$', '^0-9')

仅限字母数字:

SELECT dbo.fn_StripCharacters('a1!s2@d3#f4$', '^a-z0-9')

非字母数字:

SELECT dbo.fn_StripCharacters('a1!s2@d3#f4$', 'a-z0-9')

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!