Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
ssms Member Откуда: Сообщений: 191 |
Приветствую. Есть XML -ка. DECLARE @xmlData XML ='<?xml version="1.0" encoding="windows-1251" standalone="no"?> <messages mes="1" mes_number="108"> <mesParam> <number>7</number> </mesParam> </messages>'; Из которой надо вытащить запросом значение 7 , т.е "number". И никак не получается это сделать, мучаюсь уже час ![]() Вот так по идее должно работать, но возвращает NULL: SELECT r.value('@number[1]', 'int') as Id FROM @xmlData.nodes('/messages/mesParam') as col(r) При этом, mes_number, например, достается без труда: SELECT r.value('@mes_number[1]', 'int') as Id FROM @xmlData.nodes('/messages') as col(r) Подскажите пожалуйста, как достать поле number из данного XML? |
3 май 18, 16:41 [21385263] Ответить | Цитировать Сообщить модератору |
court Member Откуда: Сообщений: 2269 |
"Собаку" убери :) |
||
3 май 18, 16:44 [21385272] Ответить | Цитировать Сообщить модератору |
Konst_One Member Откуда: Сообщений: 11593 |
DECLARE @xmlData XML ='<messages mes="1" mes_number="108"> <mesParam> <number>7</number> </mesParam> </messages>'; SELECT r.value('number[1]', 'int') as Id FROM @xmlData.nodes('/messages/mesParam[1]') as col(r) |
3 май 18, 16:45 [21385275] Ответить | Цитировать Сообщить модератору |
ssms Member Откуда: Сообщений: 191 |
Так вот где собака зарыта!!!! ![]() |
||||
3 май 18, 16:46 [21385280] Ответить | Цитировать Сообщить модератору |
ssms Member Откуда: Сообщений: 191 |
То, что надо, большое спасибо!!! |
||
3 май 18, 16:46 [21385281] Ответить | Цитировать Сообщить модератору |
court Member Откуда: Сообщений: 2269 |
даа, и если не хочешь вот таких "эксцессов"DECLARE @xmlData XML ='<?xml version="1.0" encoding="windows-1251" standalone="no"?> <messages mes="1" mes_number="108"> <mesParam> <number>7</number> <number></number> </mesParam> </messages>'; SELECT r.value('number[1]', 'int') as Id1 ,r.value('number[2]', 'int') as Id2 FROM @xmlData.nodes('/messages/mesParam') as col(r)
лучше записывать так DECLARE @xmlData XML ='<?xml version="1.0" encoding="windows-1251" standalone="no"?> <messages mes="1" mes_number="108"> <mesParam> <number>7</number> <number></number> </mesParam> </messages>'; SELECT r.value('(number/text())[1]', 'int') as Id1 ,r.value('(number/text())[2]', 'int') as Id2 FROM @xmlData.nodes('/messages/mesParam') as col(r)
|
||||||||||
3 май 18, 16:49 [21385295] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |