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

Откуда: Украина г. Покров
Сообщений: 97
Доброго времени суток господа форумчане.
Подскажите пожалуйста, можно ли в запросе как то обозначить, что если параметр не указан, то делать выборку по всем значениям?

  AND mseg.[MATNR: Material Number] IN ('000000000083744391', '000000000083744392')


З.Ы. ЗАпрос отправляю из под Excel VBA
16 ноя 20, 19:33    [22233292]     Ответить | Цитировать Сообщить модератору
 Re: Select all еслине указан параметр.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31602
kvitnitskiy
Подскажите пожалуйста, можно ли в запросе как то обозначить, что если параметр не указан, то делать выборку по всем значениям?

  AND mseg.[MATNR: Material Number] IN ('000000000083744391', '000000000083744392')
Конечно
  AND mseg.[MATNR: Material Number] IN ('000000000083744391', '000000000083744392') OR @parametr is null
16 ноя 20, 20:16    [22233318]     Ответить | Цитировать Сообщить модератору
 Re: Select all еслине указан параметр.  [new]
vikkiv
Member

Откуда: London
Сообщений: 2757
kvitnitskiy,

на t-sql есть варианты по натягиванию совы на глобус - засовывания такой логики в WHERE - но не без граблей
в данном случае без магического шара непонятно где собственно параметр и в какой он форме

скалярным значением, как-то вдруг табличным {один параметр - множественные значения одновременно} и как он парсится..
или под параметром подразумевается произвольный набор стрингов с разделителем (через запятую) который может быть и нулевой длинны..

при таком подходе не проще-ли будет сам текст запроса динамически формировать
на клиенте в VBA в зависимости от логики на основе выбранных параметров?
(с отсылом обратно в ветку программирования с [VB]A или офисом)

Сообщение было отредактировано: 16 ноя 20, 20:21
16 ноя 20, 20:17    [22233319]     Ответить | Цитировать Сообщить модератору
 Re: Select all еслине указан параметр.  [new]
kvitnitskiy
Member

Откуда: Украина г. Покров
Сообщений: 97
автор
при таком подходе не проще-ли будет сам текст запроса динамически формировать
на клиенте в VBA в зависимости от логики на основе выбранных параметров?

Спасибо, так и сделал ))
16 ноя 20, 20:35    [22233329]     Ответить | Цитировать Сообщить модератору
 Re: Select all еслине указан параметр.  [new]
iap
Member

Откуда: Москва
Сообщений: 47024
alexeyvg
kvitnitskiy
Подскажите пожалуйста, можно ли в запросе как то обозначить, что если параметр не указан, то делать выборку по всем значениям?

  AND mseg.[MATNR: Material Number] IN ('000000000083744391', '000000000083744392')

Конечно
  AND mseg.[MATNR: Material Number] IN ('000000000083744391', '000000000083744392') OR @parametr is null
Скобки!
  AND (mseg.[MATNR: Material Number] IN ('000000000083744391', '000000000083744392') OR @parametr is null)
17 ноя 20, 12:37    [22233632]     Ответить | Цитировать Сообщить модератору
 Re: Select all еслине указан параметр.  [new]
fkthat
Member

Откуда:
Сообщений: 3840
vikkiv
не проще-ли будет сам текст запроса динамически формировать

Могут быть (хотя, впрочем, могут и не быть) трудности с кешированием плана, т.ч. если критично, то нужно будет это проверять.
17 ноя 20, 15:03    [22233831]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить