你可以試試這個查詢:
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
您需要向我們展示了** **完整的XML存儲在該欄中 - 將其作爲文本粘貼到您的問題中 - 請不要張貼圖片! –
上帝,我希望那不是真正的人:) – Simon