Сочетание len()
, stuff()
и replicate()
может привести вас туда.
Используйте len()
, чтобы получить длину слова. Используйте replicate()
, чтобы создать строку звездочек нужной длины, и используйте stuff()
, чтобы заменить конец слова звездочками. Вы также можете использовать left()
и конкатенацию вместо stuff()
.
Например:
declare @string varchar(10) = 'abcdefghij'
select len(@string) -- returns 10
select left(@string, len(@string) / 2) -- returns 'abcde'
select replicate('*', len(@string) / 2) -- returns '*****'
select left(@string, len(@string) / 2) + replicate('*', len(@string) / 2) -- returns 'abcde*****'
Я предоставлю вам решать, как вы хотите обрабатывать строки с нечетным количество символов и то, как аккуратно организовать код для работы со всем столбцом, а не с одной переменной. Обратите внимание, что функция len()
используется многократно, поэтому вы можете исключить это, например, используя cross apply
.