Stellt bedingte SQL-Ausdrücke bereit
CASE Ausdruck1 WHEN Ausdruck2 THEN Ausdruck3, ... [ ELSE Ausdruck4 ] END
SELECT id, ( CASE name WHEN 'Tee Shirt' THEN 'Shirt' WHEN 'Sweatshirt' THEN 'Shirt' WHEN 'Baseball Cap' THEN 'Hat' ELSE 'Unknown' END ) as Type FROM Product; |
CASE WHEN Suchbedingung THEN Ausdruck1, ... [ ELSE Ausdruck2 ] END
Aus Kompatibilitätsgründen können Sie diesen Ausdruck entweder mit ENDCASE oder mit END CASE abschließen.
Sie können CASE-Ausdrücke überall dort verwenden, wo reguläre Ausdrücke zulässig sind.
Syntax 1 Falls der Ausdruck, der dem Schlüsselwort CASE folgt, gleich dem Ausdruck ist, der dem ersten Schlüsselwort WHEN folgt, wird der Ausdruck zurückgegeben, der dem Schlüsselwort WHEN folgt. Andernfalls wird der Ausdruck zurückgegeben, der dem Schlüsselwort ELSE folgt, sofern angegeben.
Der folgende Code verwendet zum Beispiel eine CASE-Anweisung als zweite Klausel in einer SELECT-Anweisung. Er wählt eine Zeile aus der Tabelle Product aus, in der der Spaltenname den Wert Sweatshirt hat.
Syntax 2 Wenn die Suchbedingung, die dem ersten Schlüsselwort WHEN folgt, den Wert TRUE hat, wird der Ausdruck, der dem zugeordneten Schlüsselwort THEN folgt, zurückgegeben. Andernfalls wird der Ausdruck zurückgegeben, der der ELSE-Klausel folgt, sofern angegeben.
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.
Die folgende Anweisung verwendet einen CASE-Ausdruck als dritte Klausel einer SELECT-Anweisung, um eine Zeichenfolge einer Suchbedingung zuzuordnen. Wenn der Wert der Namensspalte Tee Shirt ist, gibt diese Abfrage Sale zurück. Und wenn der Wert der Namensspalte nicht Tee Shirt und die Menge größer als fünfzig ist, wird Big Sale zurückgegeben. Ansonsten gibt die Abfrage stets Regular price zurück.
SELECT id, name, ( CASE WHEN name='Tee Shirt' THEN 'Sale' WHEN quantity >= 50 THEN 'Big Sale' ELSE 'Regular price' END ) as Type FROM Product; |
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 |