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;