是否有任何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
答案 0 :(得分:5)
如果这是SQL Server,您可以使用REPLICATE
函数,只需复制x
字符串的LEN()
。
SELECT REPLICATE('x', LEN(@String))
编辑 - 看起来这也可以通过REPEAT()
在MySQL中使用,但我还没有通过测试
答案 1 :(得分:0)
您可以使用Replicate和Len功能替换所有字符。
declare @str varchar(20)
set @str = 'abc'
select @str = REPLICATE('X', len(@str))
select @str
答案 2 :(得分:-1)
没有内置功能可以做到这一点。但是,您可以编写一个执行正则表达式替换的CLR函数。