Hallo allerseits,
ich habe eine Frage, die sich nicht auf Delphi, sondern auf
SQL des ADS Advantage Datenbase Server bezieht.
Ich habe ein
SQL-Statement der folgenden Form:
SQL-Code:
SELECT
CASE feld_A
WHEN 1 THEN feld_B / feld_C
WHEN 2 THEN feld_B / feld_D
END
FROM tabelle
Es gilt, wenn feld_A = 2 dann feld_C = 0. feld_D ist immer > 0.
Wenn ich diese Abfrage am Datenbankserver ausführe, wird immer eine Fehlermeldung 'Division by zero' angezeigt. Es scheint, dass der ADS-
SQL-Server die Berechnung immer und für jeden Fall/Ausdruck durchführt, egal ob die Bedingung zutrifft oder auch nicht.
Kann mir das jemand bestätigen oder habe ich am ADS irgendwas falsch eingestellt?
Kann ich das Problem nur umgehen, indem ich das folgende, recht umständliche mache:
...WHEN 1 THEN (CASE feld_C WHEN 0 THEN 0 ELSE feld_B / feld_C END) END...
Gruß,
Peter