Du kunne gøre sådan noget. I stedet for straks at sende XML-værdien til en streng, bruger denne forespørgsel nøgleordet TYPE til at returnere et objekt af typen xml, som derefter kan forespørges. De tre forespørgselsfunktioner søger i xml-objektet efter alle forekomster af Somefield-elementet og returnerer et nyt xml-objekt, der kun indeholder disse værdier. Derefter fjerner værdifunktionen de xml-tags, der omgiver værdierne og sender dem til en varchar(max)
SELECT ThisTable.ID
,[A].query('/Somefield').value('/', 'varchar(max)') AS [SomeField_Combined]
,[A].query('/Somefield2').value('/', 'varchar(max)') AS [SomeField2_Combined]
,[A].query('/Somefield3').value('/', 'varchar(max)') AS [SomeField3_Combined]
FROM ThisTable
OUTER APPLY (
SELECT (
SELECT SomeField + ' ' AS [SomeField]
,SomeField2 + ' ' AS [SomeField2]
,SomeField3 + ' ' AS [SomeField3]
FROM SomeTable
WHERE SomeTable.ID = ThisTable.ID
FOR
XML PATH('')
,TYPE
) AS [A]
) [A]