Einzelnen Beitrag anzeigen

lxo

Registriert seit: 30. Nov 2017
288 Beiträge
 
Delphi 12 Athens
 
#13

AW: Firebird - where Bedingung mit Bedingung

  Alt 4. Sep 2024, 10:04
Ginge sowas?
SQL-Code:
select * from tabelle where id = ((:condition and (id = 1))
union all
select * from tabelle where id = (not :condition and (id = 20))
Ich hab meine optimale Lösung mit UNION hinbekommen, mit der nur die erforderlichen Reads gemacht werden.
Danke für den Hinweis mit UNION, hatte das irgendwie außer acht gelassen da ich irgendwie davon ausgegangen bin das es mit dem UNION noch umständlicher für Firebird wäre.

Code:
select T1.ID as T1_ID,
       T2.ID as T2_ID,
       T3.WERT
from TABELLE1 T1
cross join TABELLE2 T2
inner join TABELLE3 T3 on T3.T1_ID = T1.ID and
                T1."GLOBAL" and
            T3.T2_ID = ( select T2_TEMP.ID
                      from TABELLE2 T2_TEMP
                             where T2_TEMP.MAIN)            
union
select T1.ID as T1_ID,
       T3.T2_ID,
       T3.WERT
from TABELLE1 T1
inner join TABELLE3 T3 on T3.T1_ID = T1.ID and
      not T1."GLOBAL"
  Mit Zitat antworten Zitat