T-Sql XML-запрос - PullRequest
       19

T-Sql XML-запрос

3 голосов
/ 18 января 2012

Как я могу получить заголовок в следующем XML-документе

DECLARE @xVar XML
SET @xVar = 
  '<reportdata genre="security" publicationdate="2002" ISBN="0-7356-1588-2">
   <title>Writing Secure Code</title>
   <author>
      <first-name>Michael</first-name>
      <last-name>Howard</last-name>
   </author>
   <author>
      <first-name>David</first-name>
      <last-name>LeBlanc</last-name>
   </author>
   <price>39.99</price>
   </reportdata>'

SELECT [Title]= reportdata.item.value('@title', 'varchar(40)')

FROM   @xVar.nodes('/reportdata') AS reportdata(item)

Этот запрос всегда возвращает ноль, есть идеи?

Ответы [ 2 ]

3 голосов
/ 18 января 2012

title - это элемент, а не атрибут. Следующие работы.

SELECT [Title]= reportdata.item.value('.', 'varchar(40)')
FROM   @xVar.nodes('/reportdata/title[1]') AS reportdata(item)  
2 голосов
/ 18 января 2012

Нет необходимости уничтожать XML в предложении FROM, если требуется только одно значение.

SELECT [Title]= @xVar.value('(/reportdata/title)[1]', 'varchar(40)')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...