Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Sprachelemente » Ausdrücke

 

CASE-Ausdrücke

Der CASE-Ausdruck ermöglicht bedingte SQL-Ausdrücke. CASE-Ausdrücke können überall dort eingesetzt werden, wo Ausdrücke verwendet werden können.

Dies ist die Syntax des CASE-Ausdrucks:

CASE Ausdruck
WHEN Ausdruck
THEN Ausdruck, ...
[ ELSE Ausdruck ]
{ END | END CASE }

Falls der Ausdruck, der der CASE-Anweisung folgt, gleich dem Ausdruck ist, der der WHEN-Anweisung folgt, wird der Ausdruck zurückgegeben, der der THEN-Anweisung folgt. Andernfalls wird der Ausdruck, der der ELSE-Anweisung folgt, zurückgegeben, falls sie vorhanden ist.

Der folgende Code verwendet zum Beispiel eine CASE-Anweisung als zweite Klausel in einer SELECT-Anweisung.

SELECT ID,
   ( CASE Name
      WHEN 'Tee Shirt' then 'Shirt'
      WHEN 'Sweatshirt' then 'Shirt'
      WHEN 'Baseball Cap' then 'Hat'
      ELSE 'Unknown'
   END ) as Type
FROM Products;

Dies ist eine alternative Syntax:

CASE
WHEN Suchbedingung
THEN Ausdruck, ...
[ ELSE Ausdruck ]
END [ CASE ]

Falls die Suchbedingung erfüllt wird, die der WHEN-Anweisung folgt, wird der Ausdruck zurückgegeben, der der THEN-Anweisung folgt. Andernfalls wird der Ausdruck, der der ELSE-Anweisung folgt, zurückgegeben, falls sie vorhanden ist.

Die folgende Anweisung verwendet zum Beispiel einen CASE-Ausdruck als dritte Klausel einer SELECT-Anweisung, um eine Zeichenfolge einer Suchbedingung zuzuordnen.

SELECT ID, Name,
   ( CASE
      WHEN Name='Tee Shirt' then 'Sale'
      WHEN Quantity >= 50  then 'Big Sale'
      ELSE 'Regular price'
   END ) as Type
FROM Products;
NULLIF-Funktion für abgekürzte CASE-Ausdrücke

Die NULLIF-Funktion ermöglicht es, einige CASE-Anweisungen in Kurzform zu schreiben. Dies ist die Syntax für NULLIF:

NULLIF ( Ausdruck_1, Ausdruck_2 )

NULLIF vergleicht die Werte der zwei Ausdrücke. Wenn der erste Ausdruck gleich dem zweiten Ausdruck ist, gibt NULLIF den Wert NULL zurück. Wenn der erste Ausdruck nicht gleich dem zweiten Ausdruck ist, gibt NULLIF den ersten Ausdruck zurück.

CASE-Anweisung unterscheidet sich vom CASE-Ausdruck

Verwechseln Sie die Syntax des CASE-Ausdrucks nicht mit der der CASE-Anweisung. Informationen über die CASE-Anweisung finden Sie unter CASE-Anweisung.