You have a table named Customer that has an XML column named Locations. This column stores an
XML fragment that contains details of one or more locations, as show in the following examples.
<Location City=”Sydney” Address=”…” PhoneNumber=”…” />
<Location City=”Chicago” Address=”…” PhoneNumber=”…” />
<Location City=”London” Address=”…” PhoneNumber=”…” />
You need to write a query that returns a row for each of the customer’s locations. Each resulting row
must
include the customer name, city, and an XML fragment that contains the location details. Which
query
should you use?
A.
SELECT
CustomerName,
Locations.query(‘for $i in /Location return data($i/@City)’),
Locations.query(‘for $i in /Location return $i’)
FROM Customer
B.
SELECT
CustomerName,
Locations.query(‘for $i in /Location return element Location {$i/@City, $i}’)
FROM Customer
C.
SELECT
CustomerName,
Locations.query(‘data(/Location/@City)’),
Locations.query(‘/Location’)
FROM Customer
D.
SELECT
CustomerName,
Loc.value(‘@City’,’varchar(100)’),
Loc.query(‘.’)
FROM Customer
CROSS APPLY Customer.Locations.nodes (‘/Location’) Locs(Loc)