0

いくつかの列を含む SQL Server テーブルtblApplicationsがあります...列の 1 つが呼び出さContentれ、次の画像のような XML 値が含まれます。

ここに画像の説明を入力

上の画像のコンテンツの値をクリックすると、新しいタブで次のように表示されます

ここに画像の説明を入力

からのクエリを使用して、次の画像で選択されているののdataitem下にあるxml 値から id を使用して値を取得したいdatagroupItemdatagrouptblApplications

IDを使用してコンテンツから値を取得する方法?? たとえば、dataitem = 'ForeNames' の id の値を取得したい

クエリを使用して取得する方法????

4

1 に答える 1

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)

別の同様の質問と回答:ここ #1ここ #2

于 2013-07-31T13:37:47.480 に答える