Reverse el orden de las palabras en TSQL

Me gustaría saber cómo (si es posible) invertir el orden depalabra devuelto desde una cadena TSQL (varchar).

Sé sobre el TSQLREVERSE pero también invierte las letras de la palabra, por ejemplo:

Input>We want to tell you we all love StackOverflow
Salida>wolfrevOkcatS evol lla ew uoy llet ot tnaw eW

Quiero lograr lo siguiente en TSQL:

Input>We want to tell you we all love StackOverflow
Salida>Stackoverflow love all we you tell to want We

La única pregunta ligeramente similar que encontré en cualquier lugar fueést, sin embargo, eso incluye dividir cadenas separadas por comas que no necesito hacer.

Estoy seguro de que hay una manera de lograr lo anterior, incluso si es una función personalizada o una función SQL-CLR, cualquier ayuda sería muy apreciada.

Editar

Logré dividir mi cadena usando lo siguiente:

-- 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)

El problema ahora es tratar de juntar todo en una sola cadena en orden inverso (DESC).

Respuestas a la pregunta(5)

Su respuesta a la pregunta