Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка по списку товаров / 11 сообщений из 11, страница 1 из 1
27.02.2019, 17:54
    #39780020
TheKLF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по списку товаров
Здравствуйте!
Есть задача - таблица(перечень различных товаров и магазинов), получить из неё записи значений из перечня.

SQLSELECT [NAME], [PRICE], [STORE] FROM [dbo].[My_Base] WHERE [NAME] LIKE ' " здесь перечень названий " '


как можно автоматизировать перечисление названий, по которым надо делать выборку?
чтобы не писать много раз:

SQL..... WHERE [NAME]
LIKE 'item_1'
or LIKE 'item_2'
or LIKE 'item_3'
or LIKE 'item_4'
or LIKE 'item_5'
.......


я бы формировал что-то типа XML или CSV (не важно как именно) список по которым надо делать выгрузку и подгружал его в запрос

Спасибо!
...
Рейтинг: 0 / 0
27.02.2019, 17:56
    #39780022
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по списку товаров
перечень откуда приходит? IN() есть конструкция, может вам подойдёт
...
Рейтинг: 0 / 0
27.02.2019, 18:01
    #39780026
BredSpit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по списку товаров
Ну или JOIN ON LIKE
...
Рейтинг: 0 / 0
27.02.2019, 18:14
    #39780033
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по списку товаров
TheKLF,

для извлечения данных в табличном виде для типа данных XML можно использовать метод nodes().
...
Рейтинг: 0 / 0
27.02.2019, 21:10
    #39780112
TheKLF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по списку товаров
Спасибо за ответы, наверное я не совсем корректно условие описал

Из таблицы надо делать выборку по названиям товаров, которые (если полностью ручками запрос писать) указываются в блоке авторLIKE 'item_1' OR LIKE 'item_2' ......

так вот хотелось бы не ручками каждый раз править запрос, а автоматизировать это.

А ещё возможно я сам запрос не правильно делаю, может быть вы меня поправите. Как я уже писал ранее, надо получить список товаров, который допустим получаем в виде xml списка или просто в виде перечисления через запятую от другого отдела и нам надо им вернуть всё имеющиеся запасы из таблицы.
...
Рейтинг: 0 / 0
28.02.2019, 09:57
    #39780201
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по списку товаров
TheKLFкак можно автоматизировать перечисление названий, по которым надо делать выборку?
...
я бы формировал что-то типа XMLВам ответили:
Владислав Колосовдля извлечения данных в табличном виде для типа данных XML можно использовать метод nodes().далее, делаете JOIN вашего запроса с этим результатом, полученным методом nodes().
...
Рейтинг: 0 / 0
28.02.2019, 10:12
    #39780209
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по списку товаров
Кидайте список во времянку, а времянку вставьте в подзапрос
where exists(select * from #xxx where #xxx.name like [...].name)
С времянкой проще работать. Н-р делать ее сложное заполнение, чистку от ненужных данных и т.д.
Она более естественна.
...
Рейтинг: 0 / 0
04.03.2019, 09:26
    #39781724
TheKLF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по списку товаров
Большое спасибо за ответы!

Хотел ещё момент уточнить:
когда есть перечень "item_1.....item_10...." и их надо использовать в условии LIKE . Как лучше сделать для скорости выполнения запроса - в одном запросе много LIKE через OR или сделать условно 10 запросов с одним условием LIKE
...
Рейтинг: 0 / 0
04.03.2019, 12:01
    #39781812
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по списку товаров
TheKLF,

многое зависит от шаблона LIKE. Если этот шаблон не даёт использовать индексы, то, наверно, всё равно.
Иначе надо иметь ввиду, что сервер недолюбливает много OR.
Типичный способ оптимизации - замена на несколько SELECTов в UNION [ALL].
Если этих OR не тысячи, разумеется.
...
Рейтинг: 0 / 0
04.03.2019, 12:53
    #39781862
TheKLF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по списку товаров
iap,
спасибо за ответ!

А вариант параметра вида '%item!_1%' ESAPE '!' и остальные такого же вида влияют на скорости выполнения запроса? Когда ищется не по слову целиком, а условие является частью фразы.
...
Рейтинг: 0 / 0
04.03.2019, 15:06
    #39782017
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка по списку товаров
TheKLFА вариант параметра вида '%item!_1%' ESAPE '!' и остальные такого же вида влияют на скорости выполнения запроса? Когда ищется не по слову целиком, а условие является частью фразы.Если по индексу, то быстро, если нет, то медленно, остальное неважно.
Т.е. если 'item!_1%' или 'item!_1', то быстро, остальное медленно.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выборка по списку товаров / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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