目录
流程控制语句
1、选择语句
1)、if ... then 语句
if ... then 语句是选择语句中最简单的一种形式,它只做一种情况或条件判断,其语法格式为:
if < condition_expression > then
plsql_sentence ;
end if ;
--condition_expression : 表示一个条件表达式,当其值为 true 时,程序会进行 if 下面的 PL/SQL 语句(即 plsql_sentence 语句);
如果其值为 false 时,程序会跳过而直接执行 end id 后面的语句。
--plsql_sentence : 当 condition_expression 表达式的值为 true 时,要执行的 PL/SQL 语句。
例:定义两个字符串变量,然后赋值,接着使用 if ... then 语句比较两个字符串变量的长度,并输出比较结果:
上面的例子中写到是一个很明显的比较条件,所以 if 后面的条件表达式的值为 true,这样就会执行 if 下面的 PL/SQL 语句。如果 if 后面的条件表达式存在 “并且”、“或者”、“非” 等逻辑运算,则可以使用 “and”、“or”、“not” 等逻辑运算符。另外,如果要判断 if 后面的条件表达式的值为空值,则需要在条件表达式中使用 “is” 和 “null” 关键字:
if last_name is null then
...;
end if;
2)、if ... then ... else 语句
在编写程序的过程中,if ... then ... else 语句是最常用到的一种选择语句,它可以实现判断两种情况,只要 if 后面的条件表达式为 false ,程序就会执行 else 语句下面的 PL/SQL 语句,其语法格式为:
if < condition_expression > then
plsql_sentence1 ;
else
plsql_sentence2 ;
end if;
--condition_expression : 表示一个条件表达式,当其值为 true 时,程序会进行 if 下面的 PL/SQL 语句(即 plsql_sentence1 语句);
如果其值为 false 时,程序将执行 else 下面的 PL/SQL 语句(即 plsql_sentence2 语句)。
例:通过 if ... else 语句实现只有年龄大于等于 56 岁才可以申请退休,否则程序会提示不可以申请退休:
3)、if ... then ... elsif 语句
if ... then ... elsif 语句实现了多分支判断选择,它使程序的判断选择条件更加丰富,更加多样化,该语句中的哪个判断分支的表达式为 true ,那么程序就会执行其下面对象的 PL/SQL 语句,其语法格式为:
if < condition_expression1 > then
plsql_sentence_1 ;
elsif < condition_expression2 > then
plsql_sentence_2 ;
...
else
plsql_sentence_n ;
end if;
--condition_expression1 : 第一个条件表达式,当其值为 false 时,程序会继续判断condition_expression_2 表达式 ;
--condition_expression2 : 第二个条件表达式,当其值为 false 时,程序会继续判断下面的 elsif 语句后面的表达式;若再没有 elsif 语句,则执行 else 语句下面的 PL/SQL 语句。
--plsql_sentence_1 : 第一个条件表达式的值为 true 时,要执行的 PL/SQL 语句。
--plsql_sentence_2 : 第二个条件表达式的值为 true 时,要执行的 PL/SQL 语句。
--plsql_sentence_n : 当上面的所有条件表达式都为 false 时,要执行的 PL/SQL 语句。
例:指定一个月份数值,然后使用 if ... then .. elsif 语句判断它所属的季节,并输出季节信息ÿ