sql-server-2008 – T-SQL删除所有非alpha和非数字字符
发布时间:2020-12-12 06:45:03 所属栏目:MsSql教程 来源:网络整理
导读:有没有更聪明的方法来删除所有特殊字符而不是一系列约15个嵌套替换语句? 以下工作,但只处理三个字符(符号,空白和句点). select CustomerID,CustomerName,Replace(Replace(Replace(CustomerName,'',''),' ','.','') as CustomerNameStrippedfrom Customer 解
有没有更聪明的方法来删除所有特殊字符而不是一系列约15个嵌套替换语句?
以下工作,但只处理三个字符(&符号,空白和句点). select CustomerID,CustomerName,Replace(Replace(Replace(CustomerName,'&',''),' ','.','') as CustomerNameStripped from Customer 解决方法一种灵活的方式;ALTER FUNCTION [dbo].[fnRemovePatternFromString](@BUFFER VARCHAR(MAX),@PATTERN VARCHAR(128)) RETURNS VARCHAR(MAX) AS BEGIN DECLARE @POS INT = PATINDEX(@PATTERN,@BUFFER) WHILE @POS > 0 BEGIN SET @BUFFER = STUFF(@BUFFER,@POS,1,'') SET @POS = PATINDEX(@PATTERN,@BUFFER) END RETURN @BUFFER END select dbo.fnRemovePatternFromString('cake & beer $3.99!?c','%[$&.!?]%') (No column name) cake beer 399c (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |