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-Anweisungen » SQL-Anweisungen (E-O)

 

IF-Anweisung

Mit dieser Anweisung kontrollieren Sie die bedingte Ausführung von SQL-Anweisungen.

Syntax
IF Suchbedingung THEN Anweisungsliste
[ ELSEIF { Suchbedingung | Vorgangstyp } THEN Anweisungsliste ] ...
[ ELSE Anweisungsliste ]
{ END IF | ENDIF }
Bemerkungen

Die IF-Anweisung ist eine Steueranweisung, mit der Sie bedingt die erste Liste von SQL-Anweisungen ausführen können, deren Suchbedingung mit TRUE bewertet wird. Wenn keine Suchbedingung mit TRUE bewertet wird, und eine ELSE-Klausel vorhanden ist, wird die Anweisungsliste in der ELSE-Klausel ausgeführt.

Die Ausführung wird bei der ersten Anweisung nach END IF wieder aufgenommen.

Die IF-Anweisung unterscheidet sich vom IF-Ausdruck

Verwechseln Sie die Syntax des IF-Ausdrucks nicht mit der Syntax der IF-Anweisung.

Hinweise zum IF-Ausdruck finden Sie unter IF-Ausdrücke.

Berechtigungen

Keine.

Nebenwirkungen

Keine.

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Persistent Stored Module-Funktion.

Beispiel

Die folgende Prozedur veranschaulicht die Verwendung der IF-Anweisung:

CREATE PROCEDURE TopCustomer2 (OUT TopCompany CHAR(35), OUT TopValue INT)
BEGIN
   DECLARE err_notfound EXCEPTION
   FOR SQLSTATE '02000';
   DECLARE curThisCust CURSOR FOR
   SELECT CompanyName, CAST(    sum(SalesOrderItems.Quantity *
   Products.UnitPrice) AS INTEGER) VALUE
   FROM Customers
   LEFT OUTER JOIN SalesOrders
   LEFT OUTER JOIN SalesOrderItems
   LEFT OUTER JOIN Products
   GROUP BY CompanyName;
   DECLARE ThisValue INT;
   DECLARE ThisCompany CHAR(35);
   SET TopValue = 0;
   OPEN curThisCust;
   CustomerLoop:
   LOOP
      FETCH NEXT curThisCust
      INTO ThisCompany, ThisValue;
      IF SQLSTATE = err_notfound THEN
         LEAVE CustomerLoop;
      END IF;
      IF ThisValue > TopValue THEN
         SET TopValue = ThisValue;
         SET TopCompany = ThisCompany;
      END IF;
   END LOOP CustomerLoop;
   CLOSE curThisCust;
END;