У меня есть столбец XML с такими же именами для узлов.
Так выглядит столбец XML.У него три Mapping
узла.
<Mappings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Mapping>
<ID>1</ID>
<Name>John</Name>
</Mapping>
<Mapping>
<ID>2</ID>
<Name>Jill</Name>
</Mapping>
<Mapping>
<ID>3</ID>
<Name>Jason</Name>
</Mapping>
</Mappings>
Ожидаемый набор результатов
ID Name
------------------------
1 John
2 Jill
3 Jason
Это то, что я пытался сделать
select
convert(varchar(50), ID.query('./text()')) as ID,
convert(varchar(50), fName.query('./text()')) as [Name]
from [MyTable]
cross apply XMLCol.nodes('/Mappings/Mapping/ID') as map1(ID)
cross apply XMLCol.nodes('/Mappings/Mapping/Name') as map2(fName)
Это повторение ID 3раз со всеми 3 именами.
Я хочу повторить ID только один раз с соответствующим именем.