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

Bagaimana cara menanyakan kolom xml di tsql

Bagaimana dengan ini?

SELECT 
    EventID, EventTime,
    AnnouncementValue = t1.EventXML.value('(/Event/Announcement/Value)[1]', 'decimal(10,2)'),
    AnnouncementDate = t1.EventXML.value('(/Event/Announcement/Date)[1]', 'date')
FROM
    dbo.T1
WHERE
    t1.EventXML.exist('/Event/Indicator/Name[text() = "GDP"]') = 1

Ini akan menemukan semua baris di mana /Event/Indicator/Name sama dengan GDP dan kemudian akan menampilkan <Announcement>/<Value> dan <Announcement>/<Date> untuk baris tersebut.

Lihat demo SQLFiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memperbaiki "Pernyataan ALTER TABLE SWITCH gagal" Msg 4982 (SQL Server)

  2. Bagaimana Anda melakukan Multiple Inner Joins di Linq to Entities

  3. T-SQL untuk membuat daftar semua pemetaan pengguna dengan peran/izin basis data untuk Login

  4. Ringkas daftar menjadi string yang dipisahkan koma

  5. Permintaan SQL untuk menemukan gaji tertinggi ke-N dari tabel gaji