2013-07-31 6 views
0

У меня есть таблица tblApplications SQL Server с некоторыми столбцами ... один из столбцов называются Content и имеет значение XML, как в следующем изображении:Как получить значение XML из столбца в SQL Server

enter image description here

, когда я нажал на значение содержания в изображении выше она показывает, как следующее в новой вкладке

enter image description here

Я хочу, чтобы получить значение, используя идентификатор из XML-V ALUE из dataitem, что находится под datagroupItem из datagroup, выбранные в следующем изображении, используя запрос от tblApplications

Как получить значение из содержимого с использованием идентификатора ?? Например. Я хочу получить значение id dataitem = 'ForeNames'

Как получить его с помощью запроса ????

+5

Вам нужно, чтобы показать нам ** ** полный XML хранится в этой колонке - вставьте его в текст в свой вопрос - не публикуйте изображение, пожалуйста! –

+0

Бог, надеюсь, это не настоящий человек :) – Simon

ответ

0

Можно попробовать этот вопрос:

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) 

или

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) 

Еще подобные вопросы:-here #1 ответил, here #2

Смежные вопросы