为了账号安全,请及时绑定邮箱和手机立即绑定

关于PLSQL中的流程控制

老师,流程控制中的“case”语句好像没有讲到,我在一本书上看到过,好像也是 一种流程控制语句

正在回答

2 回答

case从严格意义上讲是if选择语句,是多条if语句的缩写形式,本质是属于条件判断,和循环流程控制不是一个概念

0 回复 有任何疑惑可以回复我~
#1

慕粉2310089285 提问者

非常感谢!
2017-11-01 回复 有任何疑惑可以回复我~

语法:

CASE selector 

WHEN exp1 then res1

WHEN exp2 then res2

WHEN exp3 then res3

...

[ELSE resN]

end;

SQL> declare
2 mygrade char(1):='A';
3 res varchar2(20);
4 begin
5 res :=
6 CASE mygrade
7 WHEN 'A' THEN 'The mark is 90-100'
8 WHEN 'B' THEN 'The mark is 80-90'
9 WHEN 'C' THEN 'The mark is 70-80'
10 WHEN 'D' THEN 'The mark is 60-70'
11 WHEN 'E' THEN 'The mark is 0-60'
12 END;
13 dbms_output.put_line(res);
14 end;
15 /
The mark is 90-100

PL/SQL procedure successfully completed.

SQL> 2
2* mygrade char(1):='A';

SQL> ch /'A'/'F'/
2* mygrade char(1):='F';
SQL> l 
1 declare
2 mygrade char(1):='F';
3 res varchar2(20);
4 begin
5 res :=
6 CASE mygrade
7 WHEN 'A' THEN 'The mark is 90-100'
8 WHEN 'B' THEN 'The mark is 80-90'
9 WHEN 'C' THEN 'The mark is 70-80'
10 WHEN 'D' THEN 'The mark is 60-70'
11 WHEN 'E' THEN 'The mark is 0-60'
12 END;
13 dbms_output.put_line(res);
14* end;
SQL> /

PL/SQL procedure successfully completed.

SQL> declare
2 mygrade char(1):='F';
3 res varchar2(20);
4 begin
5 res :=
6 CASE mygrade
7 WHEN 'A' THEN 'The mark is 90-100'
8 WHEN 'B' THEN 'The mark is 80-90'
9 WHEN 'C' THEN 'The mark is 70-80'
10 WHEN 'D' THEN 'The mark is 60-70'
11 WHEN 'E' THEN 'The mark is 0-60'
12 ELSE 'The mark is null'
13 END;
14 dbms_output.put_line(res);
15 end;
16 /
The mark is null

PL/SQL procedure successfully completed.


0 回复 有任何疑惑可以回复我~
#1

慕粉2310089285 提问者

请问你知道怎么向老师提问吗?
2017-11-01 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

关于PLSQL中的流程控制

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信