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

Откуда:
Сообщений: 316
В SQL запросе, есть строка, которая берет данные из xml-докуммента

WHEN (@XML.value('(/Документ5/Документ4/Документ3/Документ2/Документ1/)[1]', 'VARCHAR(MAX)')='0') THEN @Document1


в ней нужно по наличию тэга "Документ1" присвоить значение, если тэга НЕТ то "0" если ЕСТЬ то "1", как нужно его изменить ?
8 апр 14, 12:46    [15848737]     Ответить | Цитировать Сообщить модератору
 Re: Работа с .xml  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Aleks_Aleks, XML.exists
8 апр 14, 12:59    [15848843]     Ответить | Цитировать Сообщить модератору
 Re: Работа с .xml  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
.exist то есть :)
8 апр 14, 13:00    [15848862]     Ответить | Цитировать Сообщить модератору
 Re: Работа с .xml  [new]
Aleks_Aleks
Member

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

Может я что не так делаю но у меня он возвращает все время "0" !?

declare @XML xml

set @XML='/Документ5/Документ4/Документ3/Документ2/Документ1'

select @XML.exist('/Документ5/Документ4/Документ3/Документ2') 
select @XML.exist('/Документ5/Документ4/Документ3/Документ2/Документ1') 
8 апр 14, 14:39    [15849682]     Ответить | Цитировать Сообщить модератору
 Re: Работа с .xml  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2793
Aleks_Aleks
Может я что не так делаю

Вы путаете xml-документ и XPath.

declare @XML xml

set @XML='<Документ5>
            <Документ4>
               <Документ3>
                  <Документ2>
                     <Документ1>
                     </Документ1>
                  </Документ2>
               </Документ3>
            </Документ4>
          </Документ5>'

select @XML.exist('/Документ5/Документ4/Документ3/Документ2') 
select @XML.exist('/Документ5/Документ4/Документ3/Документ2/Документ1') 
select @XML.exist('/Документ5/Документ4/Документ3/Документ2/Документ1/Документ0') 
8 апр 14, 15:45    [15850343]     Ответить | Цитировать Сообщить модератору
 Re: Работа с .xml  [new]
Aleks_Aleks
Member

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

спс), так больше подходит
8 апр 14, 16:55    [15851058]     Ответить | Цитировать Сообщить модератору
 Re: Работа с .xml  [new]
Aleks_Aleks
Member

Откуда:
Сообщений: 316
по экспериментировав... у меня получился данный вариант:

WHEN @XML.value('(/Документ4/Документ3/Документ2/Документ1/@справка)[1]', 'NVARCHAR(20)') IS NOT NULL THEN @Document1 


но все равно все спс)
8 апр 14, 17:57    [15851567]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить