Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Server UNTUK XML Path membuat node berulang

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa kueri Microsoft SQL Server 2012 membutuhkan waktu beberapa menit dari JDBC 4.0 tetapi detik di Management Studio?

  2. SQL Server:Apakah mungkin untuk memasukkan ke dalam dua tabel secara bersamaan?

  3. SQL Server Query - perkalian berkelompok

  4. Membuat Database di SQL Server (T-SQL)

  5. Cara Mengganti Nama Database di SQL Server - Tutorial SQL Server / TSQL Bagian 26