У меня есть следующий XML:
<query>
<param weight="0.3">
<item type="1" low="18" hi="20" pos="1" />
<item type="1" low="220" hi="220" pos="0" />
</param>
<param weight="0.7">
<item type="2" low="5" hi="5" pos="1" />
</param>
</query>
Я хочу, чтобы это привело к следующему набору данных:
1 0.3 1 18 20 1
2 0.3 1 220 220 0
3 0.7 2 5 5 1
ROW_NUMBER () сделает номер строки.Я получаю только первый ряд (пункт [1]), но не остальные.Если я удаляю '[1]', я получаю "ошибку синглтона".Как мне написать это?
Это то, что я до сих пор:
SELECT x.node.value('@weight', 'float') As [Weight],
x.node.value('(item/@type)[1]', 'int') AS [Type],
x.node.value('(item/@low)[1]', 'float') AS Low,
x.node.value('(item/@hi)[1]', 'float') AS Hi,
x.node.value('(item/@pos)[1]', 'bit') AS Pos
FROM @Input.nodes('/query//*') AS x(node)