sql >> Database >  >> RDS >> Sqlserver

Hoe XML-kolom op te vragen in tsql

Hoe zit het hiermee?

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

Het zal alle rijen vinden waar de /Event/Indicator/Name is gelijk aan GDP en dan wordt de <Announcement>/<Value> . weergegeven en <Announcement>/<Date> voor die rijen.

Zie SQLFiddle-demo



  1. Hoe COS() werkt in MariaDB

  2. Hoe opeenvolgende verzamelingen records in MySQL op te nemen?

  3. Een left join doen met oude stijl joins

  4. SQL Pivot met meerdere kolommen