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

标签 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

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

975g -> XXXX

ryth5 -> XXXXX

1234vvsdf5 -> XXXXXXXXXX

test1234 -> XXXXXXXX

最佳答案

如果这是 SQL Server,您可以使用 REPLICATE 函数并简单地复制 x 字符串的 LEN()

SELECT REPLICATE('x', LEN(@String))

sqlFiddle

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

关于SQL 替换字符串中的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25388697/

相关文章:

sql - 检查两列的外键

mysql - 在MySQL中使用IF语句在没有存储过程的情况下更新或插入?

java - 从有条件的文本文件中读取

python - 基于替换和不替换规则的子字符串替换

javascript - 如何使以下正则表达式匹配并替换未闭合的双引号?

sql - 如何从SQL表中获取最小值?

sql - SQL查询,使用MAX

java - 用实际值替换字符串中的变量 - Groovy

string - 找到一种将所有大写字母放在小写字母后面且相对顺序不变的算法

r - 如何替换R中数据框中的值?