Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да заявите xml колона в tsql

Какво ще кажете за това?

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

Той ще намери всички редове, където /Event/Indicator/Name е равно на GDP и след това ще покаже <Announcement>/<Value> и <Announcement>/<Date> за тези редове.

Вижте демонстрация на 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. SQL Server 2008 Разделен низ от полето в записа

  2. Използвайте RAND() в User Defined Function

  3. SQL Server OFFSET еквивалент

  4. Java JDBC:дати постоянно два почивни дни

  5. SQL Server BULK INSERT от Linux