是否有任何 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
例如,数据列看起来像这样,我想用 x 替换整个字符串:
975g -> XXXX
ryth5 -> XXXXX
1234vvsdf5 -> XXXXXXXXXX
test1234 -> XXXXXXXX
最佳答案
如果这是 SQL Server,您可以使用 REPLICATE
函数并简单地复制 x
字符串的 LEN()
。
SELECT REPLICATE('x', LEN(@String))
编辑 - 看起来这也可以通过 REPEAT()
在 MySQL 中使用,但我还没有测试过
关于SQL 替换字符串中的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25388697/