0
我有一個XML,我試圖用SQL查詢。SQL查詢XML屬性
<QueryB>
<investment name="InvestmentA">
<Account Type="DIVIDEND">
<glsum YTD="0.0000" />
<glsum Inception="111111.0000" />
<glsum QTD="0.0000" />
</Account>
</investment>
<investment name="InvestmentB">
<Account Type="DIVIDEND">
<glsum YTD="0.0000" />
<glsum Inception="222222.0000" />
<glsum QTD="0.0000" />
</Account>
</investment>
<investment name="InvestmentC">
<Account Type="CAP">
<glsum YTD="90.0000" />
<glsum Inception="333333.0800" />
<glsum QTD="90.0000" />
</Account>
</investment>
<investment name="InvestmentD">
<Account Type="CAP">
<glsum YTD="0.0000" />
<glsum Inception="555555.0000" />
<glsum QTD="0.0000" />
</Account>
<Account Type="DIVIDEND">
<glsum YTD="0.0000" />
<glsum Inception="444444.0000" />
<glsum QTD="0.0000" />
</Account>
</investment>
請注意,InvestmentD同時具有股息和上限賬戶類型。所以,我想用下面的查詢這個數據:
select rtrim(ltrim(t.c.value('@name', 'nvarchar(500)'))) as name,
rtrim(ltrim(t.c.value('(Account/@Type)[1]', 'nvarchar(500)'))) as Type,
rtrim(ltrim(t.c.value('(Account/glsum/@YTD)[1]', 'nvarchar(500)'))) as YTD,
rtrim(ltrim(t.c.value('(Account/glsum/@Inception)[1]', 'nvarchar(500)'))) as inception,
rtrim(ltrim(t.c.value('(Account/glsum/@QTD)[1]', 'nvarchar(500)'))) as QTD
from @x.nodes('/QueryB/investment')t(c)
其中@x是XML。這一點並不令人驚訝,並沒有從InvestmentD中獲取兩個節點。我無法弄清楚如何解析所有的節點。一個指針在正確的方向將不勝感激。謝謝。
太棒了。謝謝。 –