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

Bidang Tabel Induk Pembaruan SQL berdasarkan Beberapa Baris Tabel Anak

update parent
set longtext =
    stuff((
    select ',' + c.char + ': ' + c.val
    from child c
    where c.uid = parent.uid
    for xml path(''), type).value('.','nvarchar(max)'),1,1,'');

Saya telah memperbarui SQLFiddle Anda dengan solusinya.

  1. STUFF() berfungsi untuk menghapus ',' (koma) dari karakteristik pertama.

  2. UNTUK XML untuk membuat dokumen XML dari hasil kueri. Ini adalah trik yang terkenal dengan SQL Server - karena kolom tidak diberi nama, tidak ada elemen yang dihasilkan dan hanya teks mentah (setiap baris) yang dihasilkan, digabungkan menjadi satu baris.

Sangat sedikit artikel di internet yang mencoba menjelaskannya secara mendetail, karena kodenya cukup banyak dibiarkan sebagai penjelasan tersendiri.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP mencoba masuk ke MSSQL (otentikasi windows) dengan nama komputer alih-alih nama login

  2. Bagaimana cara memilih semua catatan dari satu tabel yang tidak ada di tabel lain?

  3. Membalikkan perubahan dari log transaksi di SQL Server 2008 R2?

  4. Apa alat terbaik untuk membandingkan dua database SQL Server (skema dan data)?

  5. Prosedur tersimpan bersarang yang berisi pola TRY CATCH ROLLBACK?