此语句用于控制 SQL 语句的条件执行。
IF search-condition THEN statement-list [ ELSEIF { search-condition | operation-type } THEN statement-list ] ... [ ELSE statement-list ] { END IF | ENDIF }
IF 语句是控制语句,它允许按条件执行第一个 search-condition 计算为 TRUE 的 SQL 语句列表。如果没有 search-condition 计算为 TRUE,且存在 ELSE 子句,则执行 ELSE 子句中的 statement-list。
执行在 END IF 后的第一个语句继续。
无。
无。
SQL/2003 持久存储模块特性。
下面的过程阐释了 IF 语句的用法:
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; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |