Oracle基础课程:PL/SQL条件控制case,CASE是一种选择结构的控制语句,可以根据条件从多个执行分支中选择相应的执行动作。也可以作为表达式使用,返回一个值。类似于C#中的switch语句。语法是:
语法格式:CASE
CASE [selector] WHEN 表达式1 THEN 语句序列1; WHEN 表达式2 THEN 语句序列2; WHEN 表达式3 THEN 语句序列3; …… [ELSE 语句序列N]; END CASE; |
语法解析:
如果存在选择器selector,选择器selector与WHEN后面的表达式匹配,匹配成功就执行THEN后面的语句。如果所有表达式都与selector不匹配,则执行ELSE后面的语句。
案例4:输入一个字母A、B、C分别输出对应的级别信息。
代码演示:CASE中存在selector,不返回值
DECLARE v_grade
CHAR(1):=UPPER('&p_grade'); ① BEGIN CASE v_grade ② WHEN 'A' THEN
dbms_output.put_line('Excellent'); WHEN 'B' THEN dbms_output.put_line('Very
Good'); WHEN 'C' THEN
dbms_output.put_line('Good'); ELSE
dbms_output.put_line('No such grade'); END CASE; END; |
代码解析:
① & grade表示在运行时由键盘输入字符串到grade变量中。
② v_grade分别于WHEN后面的值匹配,如果成功就执行WHEN后的程序序列。
CASE语句还可以作为表达式使用,返回一个值。
代码演示:CASE中存在selector,作为表达式使用
DECLARE v_grade
CHAR(1):=UPPER('&grade'); p_grade VARCHAR(20) ; BEGIN p_grade := ① CASE v_grade WHEN 'A' THEN 'Excellent' WHEN 'B' THEN 'Very Good' WHEN 'C' THEN 'Good' ELSE 'No such grade' END;
dbms_output.put_line('Grade:' ||v_grade||',the result is '||p_grade); END; |
代码解析:
① CASE语句可以返回一个结果给变量p_grade
PL/SQL还提供了搜索CASE语句。也就是说,不使用CASE中的选择器,直接在WHEN后面判断条件,第一个条件为真时,执行对应THEN后面的语句序列。
代码演示:搜索CASE
DECLARE v_grade
CHAR(1):=UPPER('&grade'); p_grade VARCHAR(20) ; BEGIN p_grade := CASE WHEN v_grade='A' THEN 'Excellent' WHEN v_grade='B' THEN 'Very Good' WHEN v_grade='C' THEN 'Good' ELSE 'No such grade' END;
dbms_output.put_line('Grade:' ||v_grade||',the result is '||p_grade); END; |
CUUG 优技培训
金牌讲师
实操环境
院校合作
学校新闻
行业新闻
请输入您的手机号
申请试听