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) » UltraLite - Datenbankverwaltung » UltraLite-SQL-Referenz » UltraLite-SQL-Elemente » Ausdrücke in UltraLite

 

CASE-Ausdrücke

Stellt bedingte SQL-Ausdrücke bereit

Syntax 1
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;
Syntax 2
CASE
WHEN Suchbedingung
THEN Ausdruck1, ...
[ ELSE Ausdruck2 ]
END
Bemerkungen

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.

Beispiel

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;