TSQLを介してSQLServer2008でXMLを解析/細断処理しようとしています。ノードの1つに、値が指定されていない次の形式の空白のプロパティがあります。その値を取得できないようで、他のすべての値を破棄します(列をシフトしますか?)
これがtsqlコードと何が悪いのかの写真です:
declare @doc nvarchar(4000)
set @doc = '
<Objects>
<Object>
<Property Name="Path">some path</Property>
<Property Name="InstanceName">some instance</Property>
<Property Name="result1">0.390630000000003</Property>
<Property Name="result2">63345649697265</Property>
</Object>
<Object>
<Property Name="Path">another path</Property>
<Property Name="InstanceName" />
<Property Name="result1">100</Property>
<Property Name="result2">1002</Property>
</Object>
</Objects>
'
SELECT
item.ref.value('(Property/text())[1]', 'nvarchar(128)') AS Path,
item.ref.value('(Property/text())[2]', 'nvarchar(128)') AS InstanceName,
item.ref.value('(Property/text())[3]', 'nvarchar(128)') AS result1,
item.ref.value('(Property/text())[4]', 'nvarchar(128)') AS result2
FROM (SELECT CAST(@doc AS XML) AS feedXml) feeds(feedXml)
CROSS APPLY feedXml.nodes('/Objects/Object') AS item(ref)
クエリを実行すると、列InstanceNameに、空白、空、またはnullではなく、他の列の値が入力されていることに注意してください。
どんな助けでも大歓迎です。