SQLServer删除字符串中所有非字母字符
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')