Форум: "Базы";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Базы";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.038 c