Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como consultar a coluna xml no tsql


Que tal agora?
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

Ele encontrará todas as linhas onde o /Event/Indicator/Name é igual a GDP e, em seguida, exibirá o <Announcement>/<Value> e <Announcement>/<Date> para essas linhas.

Veja demonstração do SQLFiddle