2013-07-31 61 views
0

我有一個SQL Server表tblApplications一些列...的一列被稱爲Content並具有XML值象下面的圖像獲取XML值:如何從SQL Server中的列

enter image description here

時,我就在上面的圖片內容的價值就顯示如在新標籤中點擊以下

enter image description here

我想用ID從XML v到獲得價值的dataitem ALUE是下datagroupdatagroupItem在下面的圖片中選擇,使用從tblApplications

查詢如何從使用標識的內容的價值?例如。我想要得到的DataItem =「ForeNames」

如何得到它使用查詢的id的值????

+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 #1here #2