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

Откуда:
Сообщений: 32
Здравствуйте всем!
Требуется помощь.

Есть таблица T(fld xml)
В этом поле хранятся данные типа:
<Values>
<Value Row="1">11111</Value>
<Value Row="2">22222</Value>
<Value Row="3">33333</Value>
</Values>

Требуется написать пользовательскую функцию, в качестве параметра принимающую значение Row и возвращающая таблицу с полем типа NVARCHAR, в котором содержится строка, соответствующая значению Row. Например, функция MyFunc(2) должна возращать 22222 в поле MyField(nvarchar).

Спасибо!
17 янв 14, 12:43    [15429362]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа XML  [new]
daw
Member

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

nodes('/Values/Value[@Row = sql:variable("@Row")]
17 янв 14, 13:04    [15429534]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа XML  [new]
Gorr
Member

Откуда:
Сообщений: 32
daw, спасибо.
А можно чуть подробнее, т.к. тема для меня новая и ориентируюсь я в ней пока слабо
17 янв 14, 13:10    [15429576]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа XML  [new]
Glory
Member

Откуда:
Сообщений: 104760
Gorr
А можно чуть подробнее, т.к. тема для меня новая и ориентируюсь я в ней пока слабо

BOL - xml Data Type Methods
17 янв 14, 13:13    [15429608]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа XML  [new]
daw
Member

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

ну, тогда что-нибудь почитать по теме сначала, наверное, надо? в документации, например - про тип данных xml.
declare @t table (c xml)
insert into @t (c) values ('<Values>
 <Value Row="1">11111</Value>
 <Value Row="2">22222</Value>
 <Value Row="3">33333</Value>
</Values>');

declare @Row int = 2;

select t2.c.value('.', 'nvarchar(max)')
from @t t cross apply t.c.nodes('/Values/Value[@Row = sql:variable("@Row")]') t2 (c);
17 янв 14, 13:16    [15429633]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа XML  [new]
Gorr
Member

Откуда:
Сообщений: 32
daw, еще раз спасибо за помощь.
Я читаю документацию здесь http://technet.microsoft.com/ru-ru/library/ms190798(v=sql.105).aspx, то пока тяжело дается и спросить не у кого. Если знаете где написано понятнее - киньте ссылку
17 янв 14, 13:20    [15429679]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа XML  [new]
Gorr
Member

Откуда:
Сообщений: 32
Glory
BOL - xml Data Type Methods


Glory, а что такое BOL?
17 янв 14, 13:28    [15429748]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа XML  [new]
Glory
Member

Откуда:
Сообщений: 104760
Gorr
Glory, а что такое BOL?

Это справка/хелп продукта.
17 янв 14, 13:30    [15429760]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа XML  [new]
Gorr
Member

Откуда:
Сообщений: 32
Glory
Это справка/хелп продукта.


Понятно, я как раз там и читаю, но дается тяжело
17 янв 14, 13:36    [15429811]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа XML  [new]
Glory
Member

Откуда:
Сообщений: 104760
Gorr
я как раз там и читаю, но дается тяжело

Вы плохо читаете ? Или не можете понять данных там примеров ?
Может у вас просто отсутствие знаний о xml ?
17 янв 14, 13:38    [15429830]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа XML  [new]
daw
Member

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

ну, можно вот это полистать:
http://beyondrelational.com/modules/2/blogs/28/posts/10279/xquery-labs-a-collection-of-xquery-sample-scripts.aspx

я только сразу предупрежу: то, что там дается - это просто демонстрация возможностей работы с xml в ms sql. не всегда в реальности те задачки, которые там приводятся, стоит решать именно такими способами, с использованием xquery, да и вообще на стороне сервера. это не сборник рецептов решения реальных задач - это лабы по xquery.
17 янв 14, 13:43    [15429883]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа XML  [new]
Gorr
Member

Откуда:
Сообщений: 32
Glory
Вы плохо читаете ? Или не можете понять данных там примеров ?
Может у вас просто отсутствие знаний о xml ?


Скорее всего последнее
17 янв 14, 13:50    [15429927]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа XML  [new]
Gorr
Member

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

ну, можно вот это полистать:
http://beyondrelational.com/modules/2/blogs/28/posts/10279/xquery-labs-a-collection-of-xquery-sample-scripts.aspx

я только сразу предупрежу: то, что там дается - это просто демонстрация возможностей работы с xml в ms sql. не всегда в реальности те задачки, которые там приводятся, стоит решать именно такими способами, с использованием xquery, да и вообще на стороне сервера. это не сборник рецептов решения реальных задач - это лабы по xquery.


daw, и еще раз огромное спасибо. Обязательно изучу
17 янв 14, 13:53    [15429955]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа XML  [new]
_ПаWWWлОдАрЕц_
Guest
Gorr, Тут посмотри http://djekmusic.blogspot.ru/2012/07/xml-microsoft-sql-server-2008-xml_17.html
17 янв 14, 14:50    [15430464]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа XML  [new]
Gorr
Member

Откуда:
Сообщений: 32
_ПаWWWлОдАрЕц_,

ага, и тут посмотрю, спасибо
17 янв 14, 16:00    [15431026]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить