【发布时间】:2014-04-15 22:19:49
【问题描述】:
我需要将输入中的所有字母数字字符替换为“x”。
'12 34 - a'
变成'xx xx - x'。我尝试使用
patindex
使用[^a-zA-Z0-9],但在第一次替换后仍然找到相同的字母数字。看起来patindex 仅在删除字符时有效
有人可以建议解决这个问题
【问题讨论】:
我需要将输入中的所有字母数字字符替换为“x”。
'12 34 - a'
变成'xx xx - x'。我尝试使用
patindex
使用[^a-zA-Z0-9],但在第一次替换后仍然找到相同的字母数字。看起来patindex 仅在删除字符时有效
有人可以建议解决这个问题
【问题讨论】:
试试这个:
DECLARE @t VARCHAR(max) = '12 34 - a'
DECLARE @Keep VARCHAR(50)
SET @Keep = '%[a-vyz0-9]%'
WHILE PATINDEX(@Keep, @t) >0
Set @t = Stuff(@t, PatIndex(@Keep, @t), 1, 'x')
SELECT @t
【讨论】: