Mit dieser Anweisung wählen Sie einen Ausführungspfad für mehrere Fälle aus.
CASE Wertausdruck WHEN [ Konstante | NULL ] THEN Anweisungsliste ... [ WHEN [ Konstante | NULL ] THEN Anweisungsliste ] ... [ ELSE Anweisungsliste ] END [ CASE ]
CASE WHEN [ Suchbedingung | NULL] THEN Anweisungsliste ... [ WHEN [ Suchbedingung | NULL] THEN Anweisungsliste ] ... [ ELSE Anweisungsliste ] END [ CASE ]
Syntax 1 Die CASE-Anweisung ist eine Steueranweisung, mit der Sie eine Liste von SQL-Anweisungen auswählen können, die auf der Grundlage des Wertes eines Ausdrucks ausgeführt werden sollen. Der Wertausdruck ist ein Ausdruck, der nur einen Wert annimmt, wobei es sich um eine Zeichenfolge, eine Zahl, ein Datum oder um einen anderen SQL-Datentyp handeln kann. Wenn eine WHEN-Klausel für den Wert von Wertausdruck existiert, dann wird die Anweisungsliste in der WHEN-Klausel ausgeführt. Wenn keine geeignete WHEN-Klausel existiert, es aber eine ELSE-Klausel gibt, dann wird die Anweisungsliste in der ELSE-Klausel ausgeführt. Die Ausführung wird bei der ersten Anweisung nach END CASE wieder aufgenommen.
Wenn Wertausdruck Null sein kann, ersetzen Sie den Wertausdruck NULL mithilfe der Funktion ISNULL durch einen anderen Ausdruck.
Syntax 2 Mit dieser Form werden die Anweisungen für die erste erfüllte Suchbedingung in der CASE-Anweisung ausgeführt. Die ELSE-Klausel wird ausgeführt, wenn keine der Suchbedingungen erfüllt wird.
Wenn der Ausdruck NULL sein kann, verwenden Sie die folgende Syntax für die erste Suchbedingung:
WHEN search-condition IS NULL THEN statement-list |
Verwechseln Sie die Syntax des CASE-Ausdrucks nicht mit der Syntax der CASE-Anweisung. Weitere Hinweise finden Sie unter CASE-Ausdrücke.
Keine.
Keine.
SQL/2003 Persistent Stored Module-Funktion.
Die folgende Prozedur verwendet eine CASE-Anweisung und klassifiziert die in der Tabelle Products der SQL Anywhere-Beispieldatenbank aufgeführten Produkte in "shirt", "hat", "shorts" oder "unknown".
CREATE PROCEDURE ProductType (IN product_ID INT, OUT type CHAR(10)) BEGIN DECLARE prod_name CHAR(20); SELECT Name INTO prod_name FROM Products WHERE ID = product_ID; CASE prod_name WHEN 'Tee Shirt' THEN SET type = 'Shirt' WHEN 'Sweatshirt' THEN SET type = 'Shirt' WHEN 'Baseball Cap' THEN SET type = 'Hat' WHEN 'Visor' THEN SET type = 'Hat' WHEN 'Shorts' THEN SET type = 'Shorts' ELSE SET type = 'UNKNOWN' END CASE; END; |
Im folgenden Beispiel wird Syntax 2 benutzt, um eine Meldung über die Produktmenge in der SQL Anywhere-Beispieldatenbank zu erzeugen.
CREATE PROCEDURE StockLevel (IN product_ID INT) BEGIN DECLARE qty INT; SELECT Quantity INTO qty FROM Products WHERE ID = product_ID; CASE WHEN qty < 30 THEN MESSAGE 'Order Stock' TO CLIENT; WHEN qty > 100 THEN MESSAGE 'Overstocked' TO CLIENT; ELSE MESSAGE 'Sufficient stock on hand' TO CLIENT; END CASE; END; |
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 |