0

我有一个tblApplications带有一些列的 SQL Server 表...其中一个列被调用Content并且具有如下图所示的 XML 值:

在此处输入图像描述

当我单击上图中的内容值时,它在新选项卡中显示如下

在此处输入图像描述

我想使用 id 从dataitem下图datagroupItemdatagroup选择的 xml 值中获取值,使用来自tblApplications

如何使用 id 从内容中获取价值?例如,我想获取 dataitem = 'ForeNames' 的 id 值

如何使用查询来获取它????

4

1 回答 1

0

You could try this query:

SELECT  a.application_id,
    x.y.query('.') AS DataItemNode,
    x.y.value('(@type)[1]','NVARCHAR(50)') AS TypeAttr,
    x.y.value('(@value)[1]','NVARCHAR(50)') AS ValueAttr
FROM    dbo.tblApplications a
CROSS APPLY a.Content.nodes('/XmlDataPairDocument/dataitem/datagroup/datagroupitem/dataitem[@id="forenames"]') x(y)

or

DECLARE @id NVARCHAR(50);
SET @id='forenames';

SELECT  a.application_id,
    x.y.query('.') AS DataItemNode,
    x.y.value('(@type)[1]','NVARCHAR(50)') AS TypeAttr,
    x.y.value('(@value)[1]','NVARCHAR(50)') AS ValueAttr
FROM    dbo.tblApplications a
CROSS APPLY a.Content.nodes('/XmlDataPairDocument/dataitem/datagroup/datagroupitem/dataitem[@id = sql:variable("@id")]') x(y)

Another similar questions-answers: here #1, here #2

于 2013-07-31T13:37:47.480 回答