Обратный порядок слов в TSQL
Я хотел бы знать, как (если это возможно) изменить порядокслова возвращается из строки TSQL (varchar).
Я знаю о TSQLREVERSE
функция, но также переворачивает буквы в слове, например:
Вход>We want to tell you we all love StackOverflow
Выход>wolfrevOkcatS evol lla ew uoy llet ot tnaw eW
Я на самом деле хочу добиться следующего в TSQL:
Вход>We want to tell you we all love StackOverflow
Выход>Stackoverflow love all we you tell to want We
Единственный немного похожий вопрос, который я нашел, былэтотОднако это включает в себя разделение строк через запятую, что мне не нужно делать.
Я уверен, что есть способ достичь вышеупомянутого, даже если это пользовательская функция или функция SQL-CLR, любая помощь будет высоко ценится.
Редактировать:
Мне удалось разделить мою строку, используя следующее:
-- Create a space delimited string for testing
declare @str varchar(max)
select @str = 'We want to tell you we all love StackOverflow'
-- XML tag the string by replacing spaces with </x><x> tags
declare @xml xml
select @xml = cast('<x><![CDATA['+ replace(@str,' ',']]></x><x><![CDATA[') + ']]></x>' as xml)
-- Finally select values from nodes <x> and trim at the same time
select ltrim(rtrim(mynode.value('.[1]', 'nvarchar(50)'))) as Code
from (select @xml doc) xx
cross apply doc.nodes('/x') (mynode)
Проблема сейчас в том, чтобы попытаться собрать все это обратно в одну строку в обратном (DESC) порядке.