ORACLE中的结构控制(IF语句)
1、IF条件控制语句就是根据当前条件判断进入到哪一个步骤中,当条件为真着进入一个流程,条件为假则进入另外一个流程。
IF语句中有三种使用方式:IF....、IF..ELSE..、IF...ELSEIF....。根据实际情况灵活运用

1、IF....结构
语法:
IF condition THEN
statements;
END IF;
注释:IF.... 语句是最简单的结构方式,他只有一个IF语句,当condition 为真时,程序将会执行statements,当condition 为假时,将跳过这一段

2、例:计算9的6次幂是否大于50 0000,如果大于则输出信息
DECLARE
str1 number(10,0);
BEGIN
str1 := POWER(9,6);
IF str1>500000 THEN
DBMS_OUTPUT.PUT_LINE('9的6次幂大于50万,其结果是:'||str1);
END IF;
END;

3、代码解析:
第2行表示声明一个类型为number(10,0)的标量 str1
第4行表示给变量str1 赋值为9的6次方
第5-7行表示判断,如果变量str1大于50万,则执行第6行数据,如果不满足则跳过第6行

1、语法:
IF condition THEN
statements1;
ELSE
statements2;
END IF;
注释:当condition 为真时,程序将会执行statements1,当condition 为假时,程序将会执行statements2
2、例:计算9的5次幂是否大于50 0000,输出其信息
DECLARE
str1 number(10,0);
BEGIN
str1 := POWER(9,5);
IF str1>500000 THEN
DBMS_OUTPUT.PUT_LINE('9的5次幂大于50万,其结果是:'||str1);
ELSE
DBMS_OUTPUT.PUT_LINE('9的5次幂小于50万,其结果是:'||str1);
END IF;
END;

3、代码解析:
第2行表示声明一个类型为number(10,0)的标量 str1
第4行表示给变量str1 赋值为9的5次方
第5-6行表示判断,如果变量str1大于50万为真,则执行第6行数据
第7-8行对应第5-6行,如果变量str1大于50万为假,则执行

1、语法:
IF condition1 THEN
statements1;
ELSIF condition2 THEN
statements2;
...
[ELSE statements]
END IF;
注释:当condition1 为真时执行statements1
当condition1 为假时则判断condition2是否为真,为真时则执行statements2,为假时则执行后面的判断或者else或者退出
2、例:随机获取一个100--200的随机数,判断其所在的范围
DECLARE
STR1 NUMBER(10);
BEGIN
STR1 := DBMS_RANDOM.VALUE(100,200);
IF STR1>=100 AND STR1<130 THEN
DBMS_OUTPUT.PUT_LINE('STR1的值在100--130范围内');
ELSIF STR1>=130 AND STR1<160 THEN
DBMS_OUTPUT.PUT_LINE('STR1的值在130--160范围内');
ELSIF STR1>=160 AND STR1<190 THEN
DBMS_OUTPUT.PUT_LINE('STR1的值在160--190范围内');
ELSE
DBMS_OUTPUT.PUT_LINE('STR1的值在190--200范围内');
END IF;
END;

3、代码解析:
第2行:声明一个NUMBER型变量STR1
第4行:给STR1赋值一个随机数,范围是100-200之间
第5-6行:判断STR1是否大于100小于130,如果为真则输出第6行,为假则往下进行第7步判断
第7-10行:与上诉一样,条件为真则输出,条件为假则继续向下判断
第11行:如果以上条件都为假,则输出12行信息
