Вниз
Скачать: 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
2-1192186547
Gurd
2007-10-12 14:55
2007.11.04
путь для db


15-1191570233
vajo
2007-10-05 11:43
2007.11.04
Полезный девайс


15-1190321077
Суслик
2007-09-21 00:44
2007.11.04
VirtualPC and Other


15-1190816741
hinst
2007-09-26 18:25
2007.11.04
Elf off


15-1191618106
SerJaNT
2007-10-06 01:01
2007.11.04
Тестирование в игровой форме




   Наверх