【问题标题】:replace all alphanumeric characters tsql替换所有字母数字字符sql
【发布时间】:2014-04-15 22:19:49
【问题描述】:

我需要将输入中的所有字母数字字符替换为“x”。

'12 34 - a'

变成'xx xx - x'。我尝试使用

patindex

使用[^a-zA-Z0-9],但在第一次替换后仍然找到相同的字母数字。看起来patindex 仅在删除字符时有效

有人可以建议解决这个问题

【问题讨论】:

    标签: tsql replace


    【解决方案1】:

    试试这个:

    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
    

    【讨论】:

    • 谢谢 - 它解决了问题。但我不喜欢每次都替换单个字符,而是替换一大块字符
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    相关资源
    最近更新 更多