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

Bagaimana cara mempertahankan ampersand (&) saat menggunakan FOR XML PATH pada SQL 2005

Ada situasi di mana seseorang mungkin tidak ingin XML yang terbentuk dengan baik - yang saya (dan mungkin poster asli) temui adalah menggunakan teknik Untuk Jalur XML untuk mengembalikan daftar bidang tunggal item 'anak' melalui kueri rekursif. Informasi lebih lanjut tentang teknik ini ada di sini (khususnya di bagian 'Metode blackbox XML'):Menggabungkan Nilai Baris di Transact-SQL

Untuk situasi saya, melihat 'H&E' (noda patologi) berubah menjadi 'XML yang terbentuk dengan baik' adalah kekecewaan yang nyata. Untungnya, saya menemukan solusi... halaman berikut membantu saya memecahkan masalah ini dengan relatif mudah dan tanpa harus merancang ulang kueri rekursif saya atau menambahkan penguraian tambahan di tingkat presentasi (untuk ini juga untuk situasi lain/masa depan di mana anak saya -baris bidang data berisi karakter XML yang dicadangkan):Menangani Karakter Khusus dengan FOR XML PATH

EDIT:kode di bawah ini dari entri blog yang dirujuk.

select
  stuff(
     (select ', <' + name + '>'
     from sys.databases
     where database_id > 4
     order by name
     for xml path(''), root('MyString'), type
     ).value('/MyString[1]','varchar(max)')
   , 1, 2, '') as namelist;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. menambahkan deskripsi kolom

  2. Klausa WHERE vs ON saat menggunakan GABUNG

  3. Mengikat nilai default kolom ke fungsi di SQL 2005

  4. Bagaimana saya bisa menemukan nomor port server sql dari registri windows?

  5. SQL-Server mengabaikan COLLATION saya ketika saya menggunakan operator LIKE