Tambahkan kolom dengan NULL sebagai nilai untuk menghasilkan simpul item terpisah untuk setiap kolom.
SELECT
t.col1 as 'item'
,NULL
,t.col2 as 'item'
,NULL
,t.col3 as 'item'
FROM dbo.tbl as t
FOR XML PATH('parent'), TYPE;
Hasil:
<parent>
<item>1</item>
<item>2</item>
<item>3</item>
</parent>
SQL Fiddle
Mengapa ini berhasil?
Kolom tanpa nama disisipkan sebagai node teks. Dalam hal ini nilai NULL disisipkan sebagai simpul teks di antara item
node.
Jika Anda menambahkan nilai aktual alih-alih NULL, Anda akan melihat apa yang terjadi.
SELECT
t.col1 as 'item'
,'1'
,t.col2 as 'item'
,'2'
,t.col3 as 'item'
FROM dbo.tbl as t
FOR XML PATH('parent'), TYPE;
Hasil:
<parent>
<item>1</item>1<item>2</item>2<item>3</item></parent>
Cara lain untuk menentukan kolom tanpa nama adalah dengan menggunakan karakter pengganti *
sebagai kolom alias.
Kolom dengan Nama yang Ditetapkan sebagai Karakter Wildcard
Tidak perlu menggunakan wildcard dalam kasus ini karena kolom dengan nilai NULL tidak memiliki nama kolom tetapi berguna ketika Anda menginginkan nilai dari kolom yang sebenarnya tetapi Anda tidak ingin nama kolom menjadi nama simpul.