Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Einfacher CASE-Ausdruck

Ein einfacher CASE-Ausdruck hat folgende Syntax:


case_ausdruck ::=

CASE ausdruckx

     WHEN ausdruck1 [, ausdruck2 ] ... THEN { ausdruck | NULL }

     ...

     [ELSE { ausdruck | NULL }]

END



ausdruck

Ausdruck, dessen Auswertung einen alphanumerischen Wert, einen National-Wert, einen numerischen Wert oder einen Zeitwert ergibt.
Es darf kein multipler Wert mit Dimension > 1 sein.

Die Werte von ausdruckx und ausdruck1... ausdruckn müssen verträgliche Datentypen haben (siehe Abschnitt „Verträglichkeit von Datentypen").

ausdruck muss in der THEN- Klausel oder in der ELSE-Klausel oder in beiden Klauseln enthalten sein.

Die Datentypen der Werte von ausdruck in den THEN-Klauseln und in der ELSE-Klausel müssen verträglich sein (siehe Abschnitt „Verträglichkeit von Datentypen").


Ergebnis


Der Wert von ausdruckx nach CASE wird (von links nach rechts) verglichen mit den Werten der in der WHEN-Klausel enthaltenen Ausdrücke ausdruck1, ausdruck2, .... Bei der ersten Gleichheit ist das Ergebnis des CASE-Ausdrucks der Inhalt der zugehörigen THEN-Klausel, also der Wert des zugeordneten ausdruck bzw. der NULL-Wert. Enthält der CASE-Ausdruck mehrere WHEN-Klauseln, so ist das Ergebnis der Inhalt der ersten THEN-Klausel, in deren zugehöriger WHEN-Klausel ein Ausdruck gefunden wurde, für den Gleichheit mit ausdruckx festgestellt wird. Die WHEN-Klauseln werden von oben nach unten abgearbeitet.

Wird für keinen der in den WHEN-Klauseln enthaltenen Ausdrücke ausdruck1... ausdruckn Gleichheit mit ausdruckx festgestellt, so ist das Ergebnis der Inhalt der ELSE-Klausel, also der Wert des der ELSE-Klausel zugeordneten ausdruck bzw. der NULL-Wert. Wenn Sie die ELSE-Klausel nicht angeben, gilt die Voreinstellung NULL.

Der Datentyp eines einfachen CASE-Ausdrucks ergibt sich aus den Datentypen der Werte von ausdruck, die in den THEN-Klauseln und der ELSE-Klausel enthalten sind. Es gelten dieselben Regeln, wie für den Datentyp eines CASE-Ausdrucks mit Suchbedingung (siehe "CASE-Ausdruck mit Suchbedingung").


Ein einfacher CASE-Ausdruck entspricht einem CASE-Ausdruck mit Suchbedingung der folgenden Form:

CASE
   WHEN ausdruckx=ausdruck1 THEN {ausdruck|NULL}
   WHEN ausdruckx=ausdruck2 THEN {ausdruck|NULL}
   ...
   WHEN ausdruckx=ausdruckn THEN {ausdruck|NULL}
   ELSE {ausdruck|NULL}
END


Beispiele


Die Firmen aus der Tabelle KUNDE werden in einer Liste danach sortiert, in welchem Land der Firmensitz ist. Dabei sollen die Länderkennzeichen durch die Namen der Länder ersetzt werden.

SELECT firma,
   CASE land
       WHEN '  D' THEN 'Deutschland'
       WHEN 'USA' THEN 'Amerika'
       WHEN ' CH' THEN 'Schweiz'
   END
FROM kunde


Für die Lohnbuchhaltung soll eine Unterscheidung nach Werktag und Wochenende getroffen werden.

CASE EXTRACT(DAY_OF_WEEK FROM CURRENT_DATE)
     WHEN 1,2,3,4,5 THEN 'Werktag'
     WHEN 6,7 THEN 'Wochenende'
              ELSE '?????'
END