2017-05-23 15 views
0

XMLは次のようになります。私はテーブル形式で解析XML、リターン表でフォーマット

ID - Value 
92 - 225 
536 - 227 

が必要

<Attributes> 
<ProductAttribute ID="92"> 
    <ProductAttributeValue> 
     <Value>225</Value> 
    </ProductAttributeValue> 
</ProductAttribute> 
<ProductAttribute ID="536"> 
    <ProductAttributeValue> 
     <Value>227</Value> 
    </ProductAttributeValue> 
</ProductAttribute> 

この値をクエリやストアドプロシージャ、または関数から直接取得することはできますか?

+0

[MSドキュメント](https://docs.microsoft.com/en-us/sql/relational-をvalue()nodes方法を使用することができますdatabases/xml/xml-data-sql-server)には、XMLデータとSQL Serverに関する記事があります。 –

+0

ドキュメントをチェックしましたか?彼らは、XML、クエリ、変換などの保存と解析に関する章を持っています。特に問題はありますか? –

+0

私はそれをチェックしましたが、結果をテーブル構造にしたいのと同じようにビルドアップできません。 –

答えて

0

あなたは、XMLのため

DECLARE @xml XML = N'<Attributes> 
<ProductAttribute ID="92"> 
    <ProductAttributeValue> 
     <Value>225</Value> 
    </ProductAttributeValue> 
</ProductAttribute> 
<ProductAttribute ID="536"> 
    <ProductAttributeValue> 
     <Value>227</Value> 
    </ProductAttributeValue> 
</ProductAttribute> 
</Attributes>' 

SELECT ID = x.t.value('(./@ID)[1]','int'), 
     Value = x.t.value('(./ProductAttributeValue/Value)[1]','int') 
FROM @xml.nodes('/Attributes/ProductAttribute') AS x(t) 

戻り

ID Value 
--------- 
92 225 
536 227 
+0

ありがとうございました...それは仕事です... –

+0

あなたは歓迎です、@HiteshVaghasiya – TriV