Пятницццааа...
всякие мысли в голову лезут под конец рабочего дня...
Кто-нить пробовал в ХП организовать такую муть:
передавать параметр(ы), который/е влияли бы на запрос(ы) внутри этой ХП - то бишь динамически строить запрос(ы), а конкретней - задавать его/их условия?
типа :
CREATE PROCEDURE TMP_1 (
X_DATE1 DATE,
X_DATE2 DATE,
X1 SMALLINT,
X2 SMALLINT,
X3 SMALLINT)
RETURNS (
R_KONTR INTEGER)
AS
begin
for
select distinct SOMEFIELD
from SOMETABLE left join ANOTHERTABLE on STF2 = ATF1
where
STF4 between :X_DATE1 and :X_DATE2
если (:x1 is not null) тогды добавляем условие
and ATF1 = 1
конецесли
если (:x2 is not null) тогды добавляем условие
and ATF2 = 1
конецесли
если (:x3 is not null) тогды добавляем условие
and ATF3 = 1
конецесли
|
где ATF1, ATF2, ATF3 - поля типа smallint для признака да/нет - 1/null.
Пробовал просто написать условие как
and ATF3 = (case :x3 when 1 then 1 when 0 then null else ATF3 end) |
но тогда срабатывает только один параметр.
Как это делается по-человечески?