Re: ITEMS in WHERE-Bedingung (SQL)
geschrieben von:
mozart (---.pool.einsundeins.de)
Datum:
du kannst auch eine dynamische Abfrage verwenden
Hier ein komplexes Beispiel - im Prinzip wird der jeweilige Part der "Where" Klausel nur hinzugefügt wenn auch ein Wert zum Filtern vorhanden ist.
Typ der Abfrage auf SQL-Abfrage(PL/SQL-Funktiuonsbody der SQL Anweisung zurückgibt ..)
Regionsquelle :
declare q varchar(4000);
begin
q:= 'select "PACHT_ID","FLSTKEY","ABS_NR","GEMARKUNG","GEMARKUNGSNR","FLUR", "ZAEHLER","NENNER" from "ABSCHNITTE" WHERE 1=1 ' ;
if :P9_SUCHFELD1 is not null then
q:=q||' and instr(upper(FLSTKEY),upper(nvl(:P9_SUCHFELD1,FLSTKEY))) > 0 ';
else null; end if;
if :P9_SUCHFELD3 is not null then
q:=q||' and instr(upper(FLUR),upper(nvl(:P9_SUCHFELD3,FLUR))) > 0 ';
else null; end if;
if :P9_SUCHFELD4 is not null then
q:=q||' and instr(upper(ZAEHLER),upper(nvl(:P9_SUCHFELD4,ZAEHLER))) > 0 ';
else null; end if;
if :P9_SUCHFELD5 is not null then
q:=q||' and instr(upper(NENNER),upper(nvl(:P9_SUCHFELD5,NENNER))) > 0 ';
else null; end if;
if :P9_SUCHFELD2 is not null then
q:=q||' and instr(upper(GEMARKUNG),upper(nvl(:P9_SUCHFELD2,GEMARKUNG))) > 0 ';
else null; end if;
return q;
end;
Prinzip ist jetzt hoffentlich klar - ansonsten frag nochmal ... ;-)
Gruß
mozart <[a]> htmldb.de