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

Откуда:
Сообщений: 3
Добрый день! Уже 2-й день бьюсь :(
Зашел в тупик!!!
есть xml поле вида
<name1>
<cod> 11</cod>
<cod>15<cod/>
<cod>17</cod>
</name1>
<name2>
<cod> 11</cod>
<cod>15<cod/>
<cod>17</cod>
</name2>
и т.д (полей много)
Нужно сделать выборку (как пример) где значение cod в первом поле = 15 и значение cod во втором поле = 11 или 17
Буду очень благодарен если кто подскажете!!!!!
15 авг 14, 18:31    [16447937]     Ответить | Цитировать Сообщить модератору
 Re: H-e-e-e-l-p!!! Нужна помощь написать запрос для XML  [new]
daw
Member

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

> Нужно сделать выборку (как пример) где значение cod в первом поле = 15 и значение cod во втором поле = 11 или 17

а почему именно так - логика какая?
15 авг 14, 18:45    [16447997]     Ответить | Цитировать Сообщить модератору
 Re: H-e-e-e-l-p!!! Нужна помощь написать запрос для XML  [new]
rider_
Member

Откуда:
Сообщений: 3
daw
rider_,

> Нужно сделать выборку (как пример) где значение cod в первом поле = 15 и значение cod во втором поле = 11 или 17

а почему именно так - логика какая?




Если вкратце - то есть БД Запросов, где запрос хранится в XML
В ней нужно найти запросы отвечающие определенным условиям
Если нужно более подробно - могу написать
спасибо
15 авг 14, 19:10    [16448057]     Ответить | Цитировать Сообщить модератору
 Re: H-e-e-e-l-p!!! Нужна помощь написать запрос для XML  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4893
declare @myDoc xml
set @myDoc = 'N<a><name1> 
	<cod>11</cod>
	<cod>15</cod>
	<cod>17</cod>
	</name1>
	<name2> 
	<cod>12</cod>
	<cod>15</cod>
	<cod>17</cod>
	</name2>
	</a>';
SELECT @myDoc.query('
   for $A in /a/*
   where $A/cod[1] = 11 and ($A/cod[2] = 15 or $A/cod[2] = 17)
   return $A 
') a
15 авг 14, 19:15    [16448079]     Ответить | Цитировать Сообщить модератору
 Re: H-e-e-e-l-p!!! Нужна помощь написать запрос для XML  [new]
rider_
Member

Откуда:
Сообщений: 3
a_voronin, Благодарю за помощь!!!
Но если воспользоваться эти методом - очень тяжелый код получается для поиска
Там 5 полей для заполнения + логические операторы - запрос должен формироваться автоматически
Решил сделать вот так
Не красиво конечно - но проще и работает :)


SELECT * from table
where поле.query(".//name1//code") like ("%<cod> 11</cod>%") and (поле.query(".//name2//code") like ("%<cod> 11</cod>%") or поле.query(".//name2//code") like ("%<cod> 17</cod>%"))
16 авг 14, 17:38    [16450425]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить