powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите вытащить значение из XML
6 сообщений из 6, страница 1 из 1
Помогите вытащить значение из XML
    #39639533
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую.

Есть XML -ка.
Код: sql
1.
2.
3.
4.
5.
6.
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:

Код: sql
1.
2.
SELECT r.value('@number[1]', 'int') as Id
FROM @xmlData.nodes('/messages/mesParam') as col(r)






При этом, mes_number, например, достается без труда:

Код: sql
1.
2.
SELECT r.value('@mes_number[1]', 'int') as Id
FROM @xmlData.nodes('/messages') as col(r)




Подскажите пожалуйста, как достать поле number из данного XML?
...
Рейтинг: 0 / 0
Помогите вытащить значение из XML
    #39639536
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ssmsВот так по идее должно работать, но возвращает NULL:

Код: sql
1.
2.
SELECT r.value('@number[1]', 'int') as Id
FROM @xmlData.nodes('/messages/mesParam') as col(r)


"Собаку" убери :)
...
Рейтинг: 0 / 0
Помогите вытащить значение из XML
    #39639537
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
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)
...
Рейтинг: 0 / 0
Помогите вытащить значение из XML
    #39639541
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
courtssmsВот так по идее должно работать, но возвращает NULL:

Код: sql
1.
2.
SELECT r.value('@number[1]', 'int') as Id
FROM @xmlData.nodes('/messages/mesParam') as col(r)


"Собаку" убери :)


Так вот где собака зарыта!!!!
...
Рейтинг: 0 / 0
Помогите вытащить значение из XML
    #39639542
ssms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
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)




То, что надо, большое спасибо!!!
...
Рейтинг: 0 / 0
Помогите вытащить значение из XML
    #39639548
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даа, и если не хочешь вот таких "эксцессов"

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
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)


Id1Id270

лучше записывать так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
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)


Id1Id27NULL
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите вытащить значение из XML
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]