Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SELECT .... IN [D7, dBase, FoxPro]


ambhtr ©   (2007-06-26 11:06:00) 

Есть таблица с полем IndexCompany. Необходимо делать выборки: либо по выбраным, т.е.
where IndexCompanyIN (390,312),
либо для всех.
Можно ли для IN задать значение при котором он выбирал бы всех? Что-то типа IN (1..999) или IN(???)


Megabyte   (2007-06-28 11:29:00) [1]

Упс, не обратил внимания, что 2 значения.


ЮЮ   (2007-06-28 03:36:00) [2]

> [4] Есть такое решение:

И как оно способно реализовать коНструкцию where IndexCompany IN ( 390,312)???


Megabyte   (2007-06-27 09:03:00) [3]

Есть такое решение:
where (iif(:param is not null, IndexCompany, 0) = iif(:param is not null, :param, 0))
При null-параметре будет тождество. Хотя я не знаю, можно ли не ввести параметр вообще без сообщения об ошибке. У меня тесктовое поле, поэтому подставляю ' ' и проверяю параметр на :param <> ''.


ЮЮ   (2007-06-26 11:17:00) [4]

т.к. то что в скобках нельзя задать параметром, то запрос всё равно формируется динамически. Поэтому в случае всех WHERE часть запроса можно просто опустить.


Johnmen   (2007-06-26 11:16:00) [5]

(IndexCompany IN (390,312)) OR (:MyFlagForAllIndexCompany=1)
Параметр =1 - все, <>1 - только те, кот. в IN.


Ega23   (2007-06-26 11:14:00) [6]

where (1=:param1 or IndexCompany in ...)

Поставишь param1=1 - выберутся все. Поставишь <>1 - выберуться те, которые в in


Наверх

Титульная страница Поиск, карта сайта Написать письмо