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

Menghapus Beberapa Node dalam XQuery Tunggal untuk SQL Server

Meskipun penghapusan agak canggung untuk dilakukan dengan cara ini, Anda dapat melakukan pembaruan untuk mengubah data, asalkan data Anda sederhana (seperti contoh yang Anda berikan). Kueri berikut pada dasarnya akan membagi dua string XML menjadi tabel, menggabungkannya, mengecualikan nilai non-null (cocok), dan mengonversinya kembali ke XML:

UPDATE @table 
SET [column] = (
    SELECT p.i.value('.','int') AS c
    FROM [column].nodes('//i') AS p(i)
    OUTER APPLY (
        SELECT x.i.value('.','bigint') AS i
        FROM @parameter.nodes('//i') AS x(i)
        WHERE p.i.value('.','bigint') = x.i.value('.','int')
    ) a
    WHERE a.i IS NULL
    FOR XML PATH(''), TYPE
)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat menyelesaikan konflik pemeriksaan antara SQL_Latin1_General_CP1_CI_AS dan Latin1_General_CI_AS dalam operasi yang sama

  2. Dapatkan Semua pukulan masuk dan keluar untuk setiap karyawan?

  3. mengeluarkan rentang nilai sekuensial penuh

  4. Meminta tabel SQL dengan nilai berbeda di kolom yang sama dengan ID yang sama

  5. SQL Server:bagaimana cara mengoptimalkan kueri seperti?