Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Analyser OpenXML avec plusieurs éléments du même nom

SELECT *
FROM OPENXML (@index, 'rootnode/group/anothernode')
WITH 
(
  id int '../id',
  anothernode varchar(30) '.'
)

Ou vous pouvez utiliser le type de données XML à la place comme ceci :

SELECT G.N.value('(id/text())[1]', 'int') AS id,
       A.N.value('text()[1]', 'varchar(30)') AS anothernode
FROM @XMLDoc.nodes('rootnode/group') AS G(N)
  CROSS APPLY G.N.nodes('anothernode') AS A(N)