Вниз
Скачать: CL | DM;

SELECT .... IN   Найти похожие ветки 

 
ambhtr   (2007-06-26 11:06) [0]

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


 
Ega23 ©   (2007-06-26 11:14) [1]

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

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


 
Johnmen ©   (2007-06-26 11:16) [2]

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


 
ЮЮ ©   (2007-06-26 11:17) [3]

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


 
Megabyte ©   (2007-06-27 09:03) [4]

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


 
ЮЮ ©   (2007-06-28 03:36) [5]

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

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


 
Megabyte ©   (2007-06-28 11:29) [6]

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



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
15-1191430223
Delphi User
2007-10-03 20:50
2007.11.04
EFS


2-1191573113
SCL
2007-10-05 12:31
2007.11.04
Поиск файлов


11-1171786815
Ned
2007-02-18 11:20
2007.11.04
Hint s


15-1191308496
tesseract
2007-10-02 11:01
2007.11.04
Кто там про юзабилити спрашивал ?


15-1190961599
Ega23
2007-09-28 10:39
2007.11.04
Show component captions в IDE Delphi




   Наверх