Вниз
Скачать: 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.011 c
11-1175375566
Nsp
2007-04-01 01:12
2007.11.04
How to drag Form или как таскать форму


2-1191997824
BOBik
2007-10-10 10:30
2007.11.04
DLL+PID процесса


2-1192187209
kyn66
2007-10-12 15:06
2007.11.04
Окно не раскрывается полностью


2-1192098952
Антон Шестаков
2007-10-11 14:35
2007.11.04
количество дней


2-1192105505
vint45
2007-10-11 16:25
2007.11.04
Резкое увеличение размера динамического массива




   Наверх