2.6.1 IF语句
IF语句控制执行基于分支结构的语句序列,以实现条件控制。
1.IF-THEN形式
IF-THEN是IF语句最简单的形式,将一个条件与一个语句序列相连。当条件表达式的值为TRUE时,执行语句序列。
【例2-23】IF语句举例。

2.IF-THEN-ELSE形式
IF-THEN-ELSE形式比IF-THEN形式增加了关键字ELSE,后跟另一语句序列。其形式如下:

ELSE子句中的语句序列仅当条件表达式的值为FALSE或NULL时执行。在THEN和ELSE子句中可包含IF语句,即IF语句可以嵌套。
3.IF-THEN-ELSEIF形式
IF-THEN-ELSEIF形式利用ELSEIF关键字引入附加条件。形式如下:


当条件1表达式的值为FALSE或NULL时,ELSEIF子句测试条件2表达式,当值为TRUE时,则执行语句序列2。IF语句可以有任何数目的ELSEIF语句,而最后的ELSE子句是可选项。在此种情况下,每个条件都对应一个语句序列,条件由顶向底计算。任何一个条件计算为TRUE时,执行相对应的语句序列。如果所有条件计算为FALSE或NULL,则执行ELSE子句中的序列。
【例2-24】IF-THEN-ELSEIF语句举例。

其中,b和c是布尔数据类型(BOOLEAN)变量。布尔数据类型变量用于存储TRUE、FALSE或NULL(空值)。它没有参数,仅可将3种值赋给1个布尔变量,不能将TRUE、FALSE值插入数据库的列中,也不能从数据库的列中选择或获取列值到BOOLEAN变量。
控制语句中支持的条件谓词有比较谓词、BETWEEN、IN、LIKE和IS NULL。下面以条件控制语句IF语句为例分别进行说明。
【例2-25】含BETWEEN谓词的条件表达式举例。

【例2-26】含IN谓词的条件表达式举例。

【例2-27】含LIKE谓词的条件表达式举例。


【例2-28】含IS NULL谓词的条件表达式举例。
