Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 помогите с запросом  [new]
marvel
Member

Откуда:
Сообщений: 1066
declare @x xml = '<books>
  <book id="52F84494-51ED-4FAA-9B3E-6B0A66D1D103" number="10" />
  <author lname="Фамилия" fname="Имя"  />
</books>
<books>
  <book id="EA07129F-66F9-4C05-B7BD-242D641F9D74" number="11" />
  <author lname="Фамилия1" fname="Имя1" />
</books>'


select c.value('@id','varchar(50)')
from @x.nodes('books/book') as t(c)



Как вывести id и соответствующие ФИО автора?
123
52F84494-51ED-4FAA-9B3E-6B0A66D1D103ФамилияИмя
EA07129F-66F9-4C05-B7BD-242D641F9D74Фамилия1Имя1
15 фев 18, 10:41    [21193096]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Ilnur26
Member

Откуда:
Сообщений: 15
marvel,

select 
	c.value('book[1]/@id','varchar(50)')
,	c.value('author[1]/@lname','varchar(50)')
,	c.value('author[1]/@fname','varchar(50)')
from @x.nodes('books') as t(c)

или
select 
	b.N.value('@id', 'varchar(50)')
,	a.N.value('@lname', 'varchar(50)')
,	a.N.value('@fname', 'varchar(50)')
from @x.nodes('/books') as t(c)
cross apply t.c.nodes('book') as b(N)
cross apply t.c.nodes('author') as a(N)
15 фев 18, 11:05    [21193195]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
marvel
Member

Откуда:
Сообщений: 1066
Ilnur26,

Спасибо
15 фев 18, 11:08    [21193209]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить