dedlfix: Frage zu Fallunterscheidung CASE in Query

Beitrag lesen

Tach!

(CASE

WHEN pgd = 'R' THEN 1
WHEN (pgd = 'R' AND cond = 'RZ') THEN 0
WHEN (pgd = 'R' AND cond = 'RK') THEN 0
ELSE
pgd
END)


> Wenn die Spalte 'pgd' den Inhalt 'R' hat, soll der Faktor 1 genommen werden, es sei denn, dass in der betreffenden Zeile die Spalte 'cond' den Inhalt 'RZ' oder 'RK' hat. Dann soll nämlich der Faktor 0 genommen werden.  
> Habe ich eine fehlerhafte Syntax oder einen Logigfehler in der Query?  
  
Im Handbuch steht leider nicht, in welcher Reihenfolge die Bedingungen ausgewertet werden. Ich nehme auch nicht an, dass MySQL sie nach irgendeinem Kriterium umsortiert. Gesetzt also denn Fall, die Auswertung passiert der Reihe nach, dann trifft bereits die erste Bedingung zu und weitere Fälle müssen nicht abgearbeitet werden. Probier mal, die beiden anderen nach oben zu schieben. Wenn das nicht zum gewünschten Ergebnis führt, nimm verschachtelte IF()-Funktionen.  
  
  
dedlfix.