CASE语句与IF语句类似,也是根据条件判断到对于你的执行语句。CASE语句可分为两种类型,一种是简单的case语句,一种是搜索试case语句
工具/原料
ORACLE
PLSQL
简单case语句
1、简单的case语句会给出一个表达式,并将可能发生的结果与其做比较,如果匹配成功则执行对应的语句
2、语法:[ <<lable_name>> ]CASE case_operandWHEN when_operand1 THEN statement1;[WHEN when_operand2 THENstatement1;] .....[ELSEstatementN]END CASE [ lable_name ];
3、说明:<<lable_name争犸禀淫>>:是一个标签,可以选择是否添加,如果添加标签,在结束case语句时候标明该标签,表明结束哪个case语句,可提高阅读佣甲昭宠性case_operand:表达式,通常为一个变量when_operand1:满足表达式的一种情况,如果该值与表达式的值相同,则执行statement1ELSE:当以上所有都不满足是,执行该项
4、例:取一个随机数范围为1颍骈城茇--5,输出该数的信息DECLARE STR1 NUMBER(10);BEGIN STR1 := DBMS_RANDOM.VALUE(1,5); CASE STR1 WHEN 1 THEN DBMS_OUTPUT.PUT_LINE('STR1的值是1'); WHEN 2 THEN DBMS_OUTPUT.PUT_LINE('STR1的值是2'); WHEN 3 THEN DBMS_OUTPUT.PUT_LINE('STR1的值是3'); WHEN 4 THEN DBMS_OUTPUT.PUT_LINE('STR1的值是4'); ELSE DBMS_OUTPUT.PUT_LINE('STR1的值是5'); END CASE;END;
5、代码解析:第2行:声明一个number变量为str1第4行:给变量STR1赋一个1-5的随机值第5--14行:与第六行匹配,则输出第七行数,再与第八行作比较,如果都不满足,则else
搜索试CASE语句
1、语法:[<<label_name>>]casewhen boolean_expression1 then statement1 ;when boolean_expression2 then statement2 ;.......[else statementn ;]end case [label_name];
2、说明:label_name:与简单case语句一样,为一个标签boolean_expression1 :布尔表达式1,表达式为真,则执行then后面的statement1
3、例:取一个随机数范围为1颍骈城茇--100,输出该数的信息DECLARE STR1 NUMBER(10);BEGIN STR1 := DBMS_RANDOM.VALUE(1,100); CASE WHEN STR1<=20 THEN DBMS_OUTPUT.PUT_LINE('STR1的值是小于等于20'); WHEN STR1>20 and STR1<=40 THEN DBMS_OUTPUT.PUT_LINE('STR1的值大于20且小于等于40'); WHEN STR1>40 and STR1<=60 THEN DBMS_OUTPUT.PUT_LINE('STR1的值大于40且小于等于60'); WHEN STR1>60 and STR1<=80 THEN DBMS_OUTPUT.PUT_LINE('STR1的值大于60且小于等于80'); ELSE DBMS_OUTPUT.PUT_LINE('STR1的值大于80'); END CASE;END;
4、代码解析:第2行:声明一个number变量为str1第4行:给变量STR1赋一个1-100的随机值第6行:如果满足STR1<=20,则执行第7行语句第8--13行:与第六行一样判断。需要注意的是如果第六行语句为真,执行了第7行语句,还是会对后面的语句进行判断,如果都后面还有语句为真则同样会执行输出,如果都为假则else