如何在tsql中查询xml列
发布时间:2020-12-16 08:08:01 所属栏目:百科 来源:网络整理
导读:我有一个表T1,在SQL Server 2008上有一个XML列EventXML。我想查询某个节点包含特定值的所有行。更好的是,我想检索不同节点中的值。表T1: T1: EventID,int EventTime,datetime EventXML,XML 这里是一个示例XML层次结构: Event Indicator NameGDP/Name /In
我有一个表T1,在SQL Server 2008上有一个XML列EventXML。我想查询某个节点包含特定值的所有行。更好的是,我想检索不同节点中的值。表T1:
T1: EventID,int EventTime,datetime EventXML,XML 这里是一个示例XML层次结构: <Event> <Indicator> <Name>GDP</Name> </Indicator> <Announcement> <Value>2.0</Value> <Date>2012-01-01</Date> </Announcement> </Event> >如何找到与“GDP”相关的所有行指标;
这个怎么样?
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>和<公告> /< Date>为这些行。 见SQLFiddle demo (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |