Anda bisa melakukan sesuatu seperti ini. Alih-alih segera mengirimkan nilai XML ke string, kueri ini menggunakan kata kunci TYPE untuk mengembalikan objek tipe xml yang kemudian dapat ditanyakan. Tiga fungsi kueri mencari objek xml untuk semua instance elemen Somefield dan mengembalikan objek xml baru yang hanya berisi nilai tersebut. Kemudian fungsi nilai menghapus tag xml yang mengelilingi nilai dan meneruskannya ke 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]