Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

CASE-Ausdruck mit Suchbedingung

Ein CASE-Ausdruck mit Suchbedingung hat folgende Syntax:


case_ausdruck ::=

CASE

WHEN suchbedingung THEN { ausdruck | NULL }

...

[ELSE { ausdruck | NULL }]

END



suchbedingung

Suchbedingung, deren Auswertung einen Wahrheitswert ergibt.


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.

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

Das Ergebnis des CASE-Ausdrucks ist der Inhalt derjenigen THEN-Klausel, deren zugehörigee suchbedingung als Erste den Wahrheitswert wahr ergibt. Der Inhalt der THEN-Klausel ist der Wert des der THEN-Klausel zugeordneten ausdruck bzw. der NULL-Wert. Die WHEN-Klauseln werden von links nach rechts abgearbeitet.

Ergibt keine suchbedingung den Wahrheitswert wahr, 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 CASE-Ausdrucks mit Suchbedingung ergibt sich aus den Datentypen der Werte von ausdruck, die in den THEN-Klauseln und der ELSE-Klausel enthalten sind, wie folgt:

  • Jeder ausdruck hat Datentyp CHAR bzw. NCHAR:Der Wert des CASE-Ausdrucks hat Datentyp CHAR bzw. NCHAR mit der größten Länge..

  • Mindestens ein Wert von ausdruck hat Datentyp VARCHAR bzw. NVARCHAR:Der Wert des CASE-Ausdrucks hat Datentyp VARCHAR bzw. NVARCHAR mit der größten bzw. größten maximalen Länge.

  • Jeder ausdruck hat ganzzahligen Typ oder Festpunktzahl-Typ (INT, SMALLINT, NUMERIC, DEC):Der Wert des CASE-Ausdrucks hat Datentyp Ganz- oder Festpunktzahl.

    • Die Nachkommastellenzahl ist die größte der Nachkommastellenzahlen der verschiedenen Werte von ausdruck.

    • Die Gesamtstellenzahl ist die größte der Vorkommastellenzahlen plus die größte der Nachkommastellenzahlen der verschiedenen Werte von ausdruck, höchstens jedoch 31.

  • Mindestens ein Wert von ausdruck hat Gleitpunktzahl-Typ (REAL, DOUBLE PRECISION, FLOAT), die anderen haben einen beliebigen numerischen Datentyp:Der Wert des CASE-Ausdrucks hat den Datentyp DOUBLE PRECISION.

  • Jeder ausdruck hat Zeitdatentyp: Alle Werte müssen denselben Zeitdatentyp haben und der Wert des CASE-Ausdrucks hat auch diesen Datentyp.


Beispiel

In einer Liste werden die Artikel aus der Tabelle ARTIKEL danach sortiert, wie dringend sie bestellt werden müssen.

SELECT artnr, artbez, 
   CASE 
       WHEN bestand > minbestand THEN 'O.K.'
       WHEN bestand = minbestand THEN 'bald bestellen'
       WHEN bestand > minbestand * 0.5 THEN 'bestellen'
       ELSE 'dringend bestellen'
   END
FROM artikel