Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SELECT FROM XML FUNCTION / 9 сообщений из 9, страница 1 из 1
23.07.2018, 17:22
    #39677829
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT FROM XML FUNCTION
Хочу выбрать ноды из ф-и, которая возвращает XML
Код: sql
1.
2.
SELECT x.Rec.value('.', 'VARCHAR(500)')
FROM dbo.fnGetDriverContactsXML('0b0641ef-9e42-11e5-b8fd-18a90550aa54', 'auto').nodes('/') AS x(Rec)


Incorrect syntax near '.'.

Если XML сохранить в переменную, то работает
но мне такой вариант не подходит, так этот запрос будет оформлен подзапросом и гуид будет меняться

подскажите, как правильно сделать выборку
Спасибо
...
Рейтинг: 0 / 0
23.07.2018, 17:29
    #39677832
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT FROM XML FUNCTION
Я конечно извратился

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
	SELECT t.cl
	FROM (
		SELECT xml_col.xml_col
		FROM (SELECT xml_col = CAST(dbo.fnGetDriversContactsXML('0b0641ef-9e42-11e5-b8fd-18a90550aa54', 'auto') AS XML)) AS xml_col
	) AS tb
	OUTER APPLY (
		SELECT x.Rec.value('.', 'VARCHAR(MAX)') AS cl
		FROM tb.xml_col.nodes('cont_value') as x(Rec)		
		) AS t



смотреть страшно
...
Рейтинг: 0 / 0
23.07.2018, 17:29
    #39677833
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT FROM XML FUNCTION
а что за xml возвращает ваша функция fnGetDriverContactsXML, пример можете привести
...
Рейтинг: 0 / 0
23.07.2018, 17:30
    #39677834
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT FROM XML FUNCTION
Konst_Oneа что за xml возвращает ваша функция fnGetDriverContactsXML, пример можете привести
без рутовой ноды

Код: xml
1.
2.
<cont_value>111</cont_value>
<cont_value>222</cont_value>
...
Рейтинг: 0 / 0
23.07.2018, 17:32
    #39677835
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT FROM XML FUNCTION
Код: sql
1.
2.
SELECT x.Rec.value('.', 'VARCHAR(500)')
FROM dbo.fnGetDriverContactsXML('0b0641ef-9e42-11e5-b8fd-18a90550aa54', 'auto').nodes('/cont_value[0]') AS x(Rec)



а так, возваращает?
...
Рейтинг: 0 / 0
23.07.2018, 17:33
    #39677836
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT FROM XML FUNCTION
Код: sql
1.
2.
3.
declare @x xml = '<cont_value>111</cont_value><cont_value>222</cont_value>';
SELECT x.Rec.value('.', 'VARCHAR(500)')
FROM @x.nodes('/cont_value') AS x(Rec)
...
Рейтинг: 0 / 0
23.07.2018, 17:33
    #39677837
Дед-Папыхтет
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT FROM XML FUNCTION
listtoview,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
create table txml (
	id int primary key,
	x xml
)
insert txml values (1,'<r1><r2>hello</r2><r2>world</r2></r1>'),(2,'<r1><r2>привет</r2><r2>мир</r2></r1>');
go
create function dbo.fnGetXML (@id int)
returns table as return
	select x from dbo.txml where id = @id
go

select t.id, f.x, r.*
from	(
		values (1),(2)
		) t(id)
cross apply dbo.fnGetXML(id) f
cross apply	(
				select c.value('(.)[1]','varchar(500)') res
				from f.x.nodes('/r1/r2') x(c)
			) r
...
Рейтинг: 0 / 0
23.07.2018, 17:35
    #39677838
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT FROM XML FUNCTION
Через переменную у меня тож работает
надо через ф-ю

Вот так удалось победить

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
	SELECT t.cl
	FROM (
		SELECT dbo.fnGetDriversContactsXML('0b0641ef-9e42-11e5-b8fd-18a90550aa54', 'auto') AS tt		
	) AS tb
	OUTER APPLY (
		SELECT x.Rec.value('.', 'VARCHAR(MAX)') AS cl
		FROM tb.tt.nodes('cont_value') as x(Rec)		
		) AS t
...
Рейтинг: 0 / 0
23.07.2018, 17:36
    #39677839
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT FROM XML FUNCTION
вообще говоря вопрос снят
через OUTER APPLY работает
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SELECT FROM XML FUNCTION / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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