Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / запрос XML / 4 сообщений из 4, страница 1 из 1
17.03.2020, 10:38
    #39938122
Алексаша
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос XML
Здравствуйте!
MS SQL 2017.

есть таблица
Код: sql
1.
create table tst (id [int] identity(1,1) NOT NULL, fv [xml])



есть запрос:
Код: sql
1.
2.
3.
SELECT *
FROM tst 
WHERE fv.value('(/Rec/@AvtoID)[1]','int') = 100



как переделать запрос чтобы была возможность:
Код: sql
1.
2.
3.
4.
DECLARE @v VARCHAR(50) = 'FaceID'
SELECT *
FROM tst 
WHERE fv.value('(/Rec/@' + @v+ ')[1]','int') = 100


в таком виде ругается, что аргумент должен быть строковым литералом
...
Рейтинг: 0 / 0
17.03.2020, 11:33
    #39938154
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос XML
Код: sql
1.
2.
3.
4.
5.
DECLARE @v VARCHAR(50) = 'FaceID'
SELECT *
FROM tst 
cross apply fv.nodes('/Rec/@*') as t(c)
where t.c.value('local-name(.)', 'varchar(20)') = @v and t.c.value('.', 'int')  = 100
...
Рейтинг: 0 / 0
17.03.2020, 11:51
    #39938163
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос XML
Код: sql
1.
2.
3.
4.
DECLARE @v VARCHAR(50) = 'FaceID'
SELECT *
FROM tst 
WHERE fv.value('(/Rec/@*[local-name() = sql:variable("@v")])[1]','int') = 100
...
Рейтинг: 0 / 0
17.03.2020, 12:19
    #39938179
Алексаша
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запрос XML
Всем спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / запрос XML / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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