Mit Ausdrücken CASE in SQL-Anweisungen können Sie die Datendarstellung einer Tabelle ganz leicht bearbeiten. Hierdurch verfügen Sie über eine leistungsstarke Funktion für Bedingungsausdrücke, die in ihrem Konzept den Anweisungen CASE in bestimmten Programmiersprachen ähnelt.
SELECT DEPTNAME, CASE DEPTNUMB WHEN 10 THEN 'Marketing' WHEN 15 THEN 'Research' WHEN 20 THEN 'Development' WHEN 38 THEN 'Accounting' ELSE 'Sales' END AS FUNCTION FROM ORG
Das Ergebnis lautet:
DEPTNAME FUNCTION -------------- ----------- Head Office Marketing New England Research Mid Atlantic Development South Atlantic Accounting Great Lakes Sales Plains Sales Pacific Sales Mountain Sales
SELECT LASTNAME, WORKDEPT FROM EMPLOYEE WHERE(CASE WHEN BONUS+COMM=0 THEN NULL ELSE SALARY/(BONUS+COMM) END ) > 10
Das folgende Beispiel berechnet das Verhältnis der Summe der Gehälter in der Abteilung 20 zur Gesamtsumme aller Gehälter und verwendet zu diesem Zweck einen Ausdruck CASE:
SELECT CAST(CAST (SUM(CASE WHEN DEPT = 20 THEN SALARY ELSE 0 END) AS DECIMAL(7,2))/ SUM(SALARY) AS DECIMAL (3,2)) FROM STAFF
Das Ergebnis lautet 0.11. Bitte beachten Sie, daß die Funktionen CAST sicherstellen, daß die Genauigkeit des Ergebnisses erhalten bleibt.
CASE WHEN X<0 THEN -1 WHEN X=0 THEN 0 WHEN X>0 THEN 1 END
Dieser Ausdruck führt zu demselben Ergebnis wie die benutzerdefinierte Funktion SIGN im Schema SYSFUN.