преобразовать тип данных sql xml в таблицу - PullRequest
2 голосов
/ 27 октября 2011

Учитывая SQL ...

declare @xmlDoc xml
set @xmlDoc = '<people>
  <person PersonID="8" LastName="asdf" />
  <person PersonID="26" LastName="rtert" />
  <person PersonID="33" LastName="dfgh" />
  <person PersonID="514" LastName="ukyy" />
</people>'

Каким будет SQL для преобразования этого xml в таблицу из двух столбцов PersonID и LastName?

Ответы [ 2 ]

2 голосов
/ 27 октября 2011
select T.X.value('@PersonID', 'int') as PersonID,
       T.X.value('@LastName', 'nvarchar(50)') as LastName
from @xmlDoc.nodes('/people/person') as T(X)
2 голосов
/ 27 октября 2011
SELECT T.c.query('.').value('(//@PersonID)[1]', 'int'),
    T.c.query('.').value('(//@LastName)[1]', 'varchar(50)')
FROM @xmlDoc.nodes('/people/person') T(c)
...