3
我有一個看起來像這樣的XML數據:跨應用的不同層次
<game>
<teams>
<home id="363" color="000099">Brazil</home>
<away id="375" color="c5b358">Germany</away>
</teams>
<gameInfo>
<homeScore>1</homeScore>
<awayScore>7</awayScore>
<clock>90</clock>
</gameInfo>
</game>
我想創建具有順序列一個表:家,離開,homeID,awayID,homeScore,awayScore 。我似乎無法得到家庭ID(363和375)到表:
select *
from (
select
e.value('(./teams/home/text())[1]', 'nvarchar(100)') home,
e.value('(./teams/away/text())[1]', 'nvarchar(100)') away,
e.value('./teams/home/@id', 'int') homeID,
e.value('./teams/away/@id', 'int') awayID
e.value('(./gameInfo/homeScore/text())[1]', 'int') homeScore,
e.value('(./gameInfo/awayScore/text())[1]', 'int') awayScore
from (select * from [XMLTest].[dbo].[MATCHES]) t
cross apply t.data.nodes('game') as t2(e)
) events
比我正在建造更整潔 - 很好做。在風格上,或許全部或全部不包括* cs。*別名,而不是一半。 –
@PieterGeerkens - 謝謝先生。剛剛更新 –