次の XML のサンプルとselect
、xml をリレーションに分割するステートメントを考えると、必要なのは の 2 番目の列がselect
カテゴリの序数になることです(つまり、この場合は方向に 1、色に 2)。
注: select のリテラル値「rank()」は、プレースホルダーのままです。を使っていろいろいじっていましたが、うまくいきrank
ませんでした。
declare @x xml
set @x = '
<root>
<category>
<item value="north"/>
<item value="south"/>
<item value="east"/>
<item value="west"/>
</category>
<category>
<item value="red"/>
<item value="green"/>
<item value="blue"/>
</category>
</root>'
select c.value('./@value', 'varchar(10)') as "ItemValue",
'rank()' as "CategoryNumber"
from @x.nodes('//item') as t(c)