Вот еще один немного более сложный способ. XQuery и его FLWOR выражение. Таким образом, вы формируете XML явно. Легко создавать, понимать, вносить любые изменения и поддерживать в будущем.
SQL
-- DDL and sample data population, start
DECLARE @tbl TABLE (ID INT PRIMARY KEY, Flight1 VARCHAR(20), Flight2 VARCHAR(20));
INSERT INTO @tbl (ID, Flight1, Flight2) VALUES
(1, 'F0123', 'F0789'),
(2, 'F0345', 'F0678');
-- DDL and sample data population, end
SELECT (
SELECT *
FROM @tbl
FOR XML PATH('r'), TYPE, ROOT('root')).query('<Flights>
{
for $x in /root/r
return <Flight>
{$x/ID}
<FlightDescription>
<number>{data($x/Flight1)}</number>
<number>{data($x/Flight2)}</number>
</FlightDescription>
</Flight>
}
</Flights>'
);
Вывод
<Flights>
<Flight>
<ID>1</ID>
<FlightDescription>
<number>F0123</number>
<number>F0789</number>
</FlightDescription>
</Flight>
<Flight>
<ID>2</ID>
<FlightDescription>
<number>F0345</number>
<number>F0678</number>
</FlightDescription>
</Flight>
</Flights>