日期:2014-05-17  浏览次数:20869 次

PLSQL 循环语句问题
user1表
Id
1
2
5

user2表
id num
1
2
  3
  4
5

就是判断user1表ID是否按顺序增长,如果是就插入USER2的id,如果没有这个数就插入num,得到的结果是user2表
我是这样写的

Declare 
i Number:=0;
Begin
Loop 
i:=i+1;
For c_num In (Select Id From user1)
Loop 
If c_num.id=i Then 
Insert Into User2(Id) Values (c_num.id);
Else 
Insert Into user2(num) Values (i);
End If;
End Loop ;
Exit When i=5;
End Loop;
Commit;
End;

但是结果是插入了5次
Select * From user2
id num

  1
  1
  1
  1

  2
  2 
  2
  2
  3
  3
.....

各位看下是那里写错了?怎么循环插入了5次?我只需要一次


------解决方案--------------------
探讨

引用:
在这个之后加exit试试
If c_num.id=i Then
Insert Into User2(Id) Values (c_num.id);
Else
Insert Into user2(num) Values (i);
End If;
exit;


结果这样user2表
id num
1
2
3
4
……