EKKi: IF / Case unterschiedliche Spalten (Tabellen)

Beitrag lesen

Mahlzeit hawkmaster1,

vielen Dank, dass Du das von Dir verwendete DBMS angegeben hast ...

Dann rate ich mal:

Kann man in einer Case oder IF Anweisung auch unterschiedliche Tabellen ansprechen?

Ja.

Allerdings liefert ein CASE-Statement immer *genau einen* Wert zurück. Du könntest also z.B. folgendes probieren:

SELECT [...]  
,      CASE A.TabsJobtkID WHEN 15 THEN J.ControlDef ELSE I.ControlDef END AS ControlDef  
,      CASE A.TabsJobtkID WHEN 15 THEN J.GroupDef ELSE I.GroupDef END AS GroupDef  
  FROM elementgroup A  
[...]

Unterschiedliche DBMS bieten dafür auch "Kurzschreibweisen" (bzw. Funktionen) an, Oracle z.B.:

SELECT [...]  
,      DECODE(A.TabsJobtkID, 15, J.ControlDef, I.ControlDef) AS ControlDef  
,      DECODE(A.TabsJobtkID, 15, J.GroupDef, I.GroupDef) AS GroupDef  
  FROM elementgroup A  
[...]

Mein SQL Befehl mit mehreren JOINs liefert in den Zeilen wo die A.TabsJobtkID = 15 ist, in den Spalten ElementDisplay, ControlDef und GroupDef NULL Werte weil man hier mit einer anderen Tabelle joinen müsste.

Wenn Du Probleme mit NULL-Werten hast, könntest Du Dir auch mal die Funktion NVL() anschauen ...

MfG,
EKKi

--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|