SQL替换字符串中的所有字符

Jt2*_*uan 0 sql string replace

是否有任何SQL语句用'X'替换字符串中的所有内容.字符串的长度不一样,所以它有点棘手.除了下面的功能之外,我还没有找到任何可以做到这一点的东西,但是当我传入'a-z0-9'需要很长时间,因为我必须搜索所有这些,但我真的只是想要替换一切无论它是什么.

[dbo].[cfn_StripCharacters]
 (
    @String NVARCHAR(MAX), 
 @MatchExpression VARCHAR(255)='a-z0-9'
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
SET @MatchExpression =  '%['+@MatchExpression+']%'

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

RETURN @String
Run Code Online (Sandbox Code Playgroud)

例如,数据列看起来像这样,我想用x替换整个字符串:

975克 - > XXXX

ryth5 - > XXXXX

1234vvsdf5 - > XXXXXXXXXX

test1234 - > XXXXXXXX

Tom*_*Tom 5

如果这是SQL Server,您可以使用REPLICATE功能和简单复制xLEN()字符串.

SELECT REPLICATE('x', LEN(@String))
Run Code Online (Sandbox Code Playgroud)

sqlFiddle

编辑 - 看起来这也可以通过MySQL获得,REPEAT()但我还没有测试过