Oracle PL/SQL while loop循环实例

用while loop语句进行循环计算的一个实例。最近做题遇到,在此记录。

WHILE-LOOP语法

条件为真时,执行语句。

1
2
3
WHILE condition LOOP
some_statements;
END LOOP;

实例

题目

给出一个Power表(表 1)的数据如下:

  1. 3日的电费=1日+2日
  2. 4日的电费=2日+3日

要求:

编写SQL语句,最终显示出六月所有电费。

答题

创建表,存入初始数据

1
2
3
create table power(mon int,day int,fee int);
insert into power values(6,1,60);
insert into power values(6,2,34);

计算整月的电费

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
declare
a number;
b number;
x number;
y number;
begin
a:=1;
b:=2;
while (b<=29) loop
select fee
into x
from power
where day=a;
select fee
into y
from power
where day=b;
insert into power values(6,a+2,x+y);
a:=a+1;
b:=b+1;
end loop;
end;
/

显示结果

1
select * from power;

您的支持将是对我最好的鼓励!