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; |
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.
Verwechseln Sie die Syntax des CASE-Ausdrucks nicht mit der der CASE-Anweisung. Informationen über die CASE-Anweisung finden Sie unter CASE-Anweisung.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |