Вот что я только что сделал для вас, он отлично работает на SQL Server, если вы используете что-то еще, возможно, вам придется изменить незначительные вещи, но это не должно быть так сложно.Не забудьте изменить размер VARCHAR, чтобы он подходил к столбцу вашей базы данных.
DECLARE @return VARCHAR(30)
DECLARE @loop INT
DECLARE @myString VARCHAR(30)
SET @return = '' -- The variable that will be returned
SET @myString = 'World Trade Center' -- Your original value
SET @loop = LEN(@myString) - LEN(REPLACE(@myString,' ','')) + 1 -- Calculate the nombre of spaces to know how many times to loop
DECLARE @count INT = 1;
WHILE @count <= @loop -- While u haven't parsed all words of the original string
BEGIN
SET @return = SUBSTRING(PARSENAME(REPLACE(@myString, ' ', '.'), @count), 1, 1) + @return -- Add the first letter of each word to the return variable
SET @count = @count + 1;
END;
SELECT @return -- And there you got 'WTC', you can use it as you want
Добавление первой буквы каждого слова в @return может выглядеть странно, так как выглядит так, как если бы буквы добавлялись в обратном порядке., но на самом деле это работает нормально, по крайней мере, на SQL Server