Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 ПОмогите распарсить ХМЛ  [new]
Int23
Guest
Есть документ вида
<Items>
<Item Value="123">
<Item Value="456">
<Item Value="738">
</Items>

Надо вернуть так


ROW Item
1 <Item Value="123">
2 <Item Value="456">
3 <Item Value="738">

Как получить новер узла?
2 июл 09, 15:20    [7369033]     Ответить | Цитировать Сообщить модератору
 Re: ПОмогите распарсить ХМЛ  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Как получить новер узла?

declare @xml xml
set @xml = '<Items>
<Item Value="123"/>
<Item Value="456"/>
<Item Value="738"/>
</Items>'

select
   t.c.query('.')
   , t.c.value('count(for $s in /Items/Item where $s << . return ("1"))', 'int') + 1 -- 1
   , row_number() over(order by t.c)                                                 -- 2
   , row_number() over(order by (select null))                                       -- 3
from @xml.nodes('/Items/Item') t(c)


за корректность (то есть, что они всегда правильно работать будут) 2 и 3 способов не поручусь.

Posted via ActualForum NNTP Server 1.4

2 июл 09, 15:46    [7369273]     Ответить | Цитировать Сообщить модератору
 Re: ПОмогите распарсить ХМЛ  [new]
Int23
Guest
Спасибо. Буду юзать способ №1
2 июл 09, 16:09    [7369454]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить