1
create table [Trades] (
[Id] int not null
,[TradeXML] xml not null
)
表,這裏的TradeXML XML列
<Trade>
<Arg>
<Name>Id</Name>
<Data>
<DataItem DataType="8"></DataItem>
</Data>
</Arg>
<Arg>
<Name>Function</Name>
<Data>
<DataItem DataType="8">CapFloor</DataItem>
</Data>
</Arg>
<Arg>
<Name>Curve</Name>
<Data>
<DataItem DataType="8">EURCurve</DataItem>
</Data>
</Arg>
<Arg>
<Name>Rates</Name>
<Data>
<DataItem DataType="5">2.175</DataItem>
<DataItem DataType="5">2.169</DataItem>
<DataItem DataType="5">2.714</DataItem>
<DataItem DataType="5">3.394</DataItem>
<DataItem DataType="5">3.931</DataItem>
<DataItem DataType="5">4.477</DataItem>
<DataItem DataType="5">4.296</DataItem>
</Data>
</Arg>
<Arg>
<Name>Index</Name>
<Data>
<DataItem DataType="8">EURIBOR</DataItem>
</Data>
</Arg>
</Trade>
這個SQL
select Node.Name.value('.', 'varchar(100)') Label
from Trades as t
cross apply t.TradeXML.nodes('//Arg/Name') Node(Name)
回報5的內容行:
Id
Function
Curve
Rates
Index
個
這個SQL
select Data.Name.value('.','varchar(100)') Value
from Trades as t
cross apply t.TradeXML.nodes('//Arg/Data/DataItem[1]') Data(Name)
返回5行:
CapFloor
EURCurve
2.175
EURIBOR
這
select Attribute.Name.query('local-name(.)') Attribute
,Attribute.Name.value('.', 'varchar(100)') Value
from Trades as t
cross apply t.TradeXML.nodes('//@*') Attribute(Name)
返回11行:
DataType 8
DataType 8
DataType 8
DataType 5
DataType 5
DataType 5
DataType 5
DataType 5
DataType 5
DataType 5
DataType 8
但什麼我想是這樣的組合(所以基本上名稱,(第一)的DataItem值和(第一)的DataItem的數據類型屬性的值),就像這樣:我在保存它
Id
Function CapFloor 8
Curve EURCurve 8
Rates 2.175 5
Index EURIBOR 8
rextester玩耍。我試圖自己結合他們,但沒有設法得到正確的結果。 任何幫助將不勝感激!
看起來那麼簡單,真棒,謝謝! – Eddict