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 MIN / MAX

Ein CASE-Ausdruck mit MIN / MAX hat folgende Syntax:


case_ausdruck ::= { MIN | MAX }( ausdruck1,ausdruck2, ..., ausdruckn )



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 ausdruck1,ausdruck2,...,ausdruckn müssen verträgliche Datentypen haben (siehe Abschnitt „Verträglichkeit von Datentypen").

Ein CASE-Ausdruck mit MIN bzw. MAX bezieht sich auf unterschiedliche Ausdrücke. Er unterscheidet sich dadurch von den Mengenfunktionen MIN() und MAX() (siehe "Mengenfunktionen"), die sich auf die Menge aller Werte einer Spalte in einer Tabelle beziehen.


Ergebnis


Das Ergebnis des CASE-Ausdrucks ist der NULL-Wert, wenn wenigstens einer der in der Klammer enthaltenen Ausdrücke (ausdruck1,ausdruck2,...,ausdruckn) den NULL-Wert ergibt.

Ergibt kein ausdruck den NULL-Wert, so ist das Ergebnis des CASE-Ausdrucks bei Angabe von MIN der Wert des kleinsten ausdruck, bei Angabe von MAX der Wert des größten ausdruck.


Der CASE-Ausdruck MIN(ausdruck1,ausdruck2) entspricht einem CASE-Ausdruck mit Suchbedingung der folgenden Form:

CASE 
   WHEN ausdruck1 <= ausdruck2 THEN ausdruck1 
   ELSE ausdruck2 
END


Der CASE-Ausdruck MIN(ausdruck1,ausdruck2,...,ausdruckn) entspricht dem CASE-Ausdruck MIN(MIN(ausdruck1,ausdruck2,...),ausdruckn).


Der CASE-Ausdruck MAX(ausdruck1,ausdruck2) entspricht einem CASE-Ausdruck mit Suchbedingung der folgenden Form:

CASE 
   WHEN ausdruck1 >= ausdruck2 THEN ausdruck1 
   ELSE ausdruck2 
END


Der CASE-Ausdruck MAX(ausdruck1,ausdruck2,...,ausdruckn) entspricht dem CASE-Ausdruck: MAX(MAX(ausdruck1,ausdruck2,...),ausdruckn).


Beispiel


Folgendes Beispiel wählt alle Einträge der Tabelle umsatz seit dem mit der Benutzervariablen input_datum eingegebenen Datum, aber höchstens für die letzten 90 Tage.

SELECT * FROM umsatz WHERE umsatz.datum >= MAX(:input_datum,

DATE_OF_JULIAN_DAY(JULIAN_DAY_OF_DATE(CURRENT_DATE)-90))