您好,我不太擅长 SQL,所以任何帮助都会非常感谢您。
我有一个有 2 列单词和替换的表
现在我的替换列是空的但是我正在尝试做一个更新语句来计算世界列中的字符然后将特定符号添加到替换列
例如 word 列中的值是 Hello World 更新将添加
Hello World, ***** *****
现在我很简单
update Words
set replacement = Replace(words, '*')
您好,我不太擅长 SQL,所以任何帮助都会非常感谢您。
我有一个有 2 列单词和替换的表
现在我的替换列是空的但是我正在尝试做一个更新语句来计算世界列中的字符然后将特定符号添加到替换列
例如 word 列中的值是 Hello World 更新将添加
Hello World, ***** *****
现在我很简单
update Words
set replacement = Replace(words, '*')
这是您可以用来执行此类更新的功能。
它使用数字表,如果您还没有数字表,您可以在此处阅读更多信息(创建一个!)。
create function dbo.ReplaceChars(@Word varchar(max), @Char char(1))
returns varchar(max)
as
begin
declare @output varchar(1000);
set @output = replicate(@Char, len(@Word));
select @output = stuff(@output, n, 1, ' ')
from ( select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union
select 7 union select 8 union select 9 union select 10 union select 11 union select 12
) number(n) --** use your own number table here **
where substring(@Word, n, 1) = ' ' and
n <=len(@Word);
return @output;
end
--usage
declare @table table (Word varchar(max), Replacement varchar(max))
insert into @table (Word)
select 'Hello World' union all
select 'one two yak';
update @table
set Replacement = dbo.ReplaceChars(Word, '*')
where Word is not null;
select * from @table;
使用复制功能,您可以轻松完成您想要做的事情。
复制('*',len(字))
例子:
declare @test table (
word varchar(100)
,replacement varchar(100)
)
insert into @test
values
('bad',null)
,('word',null)
select
word test1
,replacement test1
from @test
update @test
set replacement = replicate('*',len(word))
where replacement is null
select
word test2
,replacement test2
from @test