Asp.net 如何从SQL Server中的列中获取XML值
我有一个SQL Server表Asp.net 如何从SQL Server中的列中获取XML值,asp.net,sql-server-2008,Asp.net,Sql Server 2008,我有一个SQL Server表tblApplications,其中有一些列。。。其中一列称为Content,其XML值如下图所示: 当我点击上图中内容的值时,它在NewTab中显示如下 我想使用tblApplications中的查询,从datagroupItem的datagroupItem下的dataitem的xml值中获取id值 如何使用id从内容中获取值??例如,我想获取dataitem的id值='ForeNames' 如何使用查询获取它???您可以尝试以下查询: SELECT a.a
tblApplications
,其中有一些列。。。其中一列称为Content
,其XML值如下图所示:
当我点击上图中内容的值时,它在NewTab中显示如下
我想使用tblApplications
中的查询,从datagroupItem
的datagroupItem
下的dataitem
的xml值中获取id值
如何使用id从内容中获取值??例如,我想获取dataitem的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="forenames"]') x(y)
或
另一个类似的问题回答:,您需要向我们展示该列中存储的完整XML-将其作为文本粘贴到您的问题中-请不要发布图片!上帝,我希望那不是一个真实的人:)
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)