Вы можете использовать комбинацию STRING_SPLIT
, STUFF
и REVERSE
, чтобы разбить строку на пробелы, а затем заменить последнее вхождение символа в каждом слове. И затем вы можете использовать STRING_AGG
для объединения обратно с пробелами.
DECLARE @FullName NVARCHAR(100)
SET @FullName = 'testexecution testexecution'
SELECT STRING_AGG(VALUE,' ') AS UpdatedFullName FROM
(
SELECT STUFF(VALUE, LEN(VALUE) +1 - CHARINDEX('t', REVERSE(VALUE)), 1, 'k') AS VALUE -- Replace last occurence of 't' with 'k'
from STRING_SPLIT(@FullName,' ')
) AS ReplacedResult
ПРИМЕЧАНИЕ. Для этого потребуется SQL Server 2017 или более поздней версии
Также ваша база данныхКажется, что используется несколько языков, поэтому я бы предложил использовать NVARCHAR
вместо VARCHAR
для поддержки Unicode