【发布时间】:2019-10-28 13:39:49
【问题描述】:
我有一个叫做Reviews的表,我觉得这个问题的内容并没有太大的问题,但是我想把这个表的每一行,一个一个地浏览一遍,用每一行的数据作为Insert Into 语句的一部分。作为所使用的每一行的一部分,我需要将一个整数(称为 Evid)递增 1,因为该整数需要用作 Insert Into 语句的一部分。所以第一行将有 1,第二行将有 2,依此类推。
我正在使用 Advantage Architect,下面是我对其工作方式的大致了解,我知道我需要帮助。
我想用来循环的表格的行示例:
IDENT|REFERENCE|TITLE
1234 | TEST | testing
4456 | TEST2 | testing2
我想插入另一个表,它看起来像这样。它从上面遍历的每一行都将用于在下表中插入多行,但将 EVID 保持为连续的 INTEGER 值。
IDENT|REFERENCE|TITLE |STAFF |EVID
1234 | TEST | testing |STAFF1| 1
1234 | TEST | testing |STAFF2| 1
4456 | TEST2 | testing2|STAFF1| 2
4456 | TEST2 | testing2|STAFF2| 2
_
declare evid integer;
declare cur cursor;
evid = 1;
open cur
//Do Insert Into
//Evid +1;
Close cur;
【问题讨论】:
-
请编辑您的问题,向我们展示样本数据和预期结果。事实上,您的问题太宽泛了(并且很可能不需要循环:
insert ... select ..查询可能会更有效地完成工作)。 -
好的,我会编辑最初的问题
-
此操作不需要光标。
-
啊,好的@GordonLinoff。如果我可以问,您会建议什么作为可行的替代方案?
标签: sql loops cursor advantage-database-server