如何在Firebird中使用For循环?

Roh*_*hit 3 sql firebird for-loop

有人可以向我解释ForFirebird中循环的语法吗?

这是我到目前为止的代码:

As 
Declare variable Var1 integer;
begin
Insert into table1 
-- Select query to insert some enteries in table 1 - Done successfully.
FOR SELECT table1.Column1 from table1 into :Var1 
Do
Begin 
Update tableabc.column1 = (select tablexyz. column1 from tablexyz where tablexyz.ID = :Var1) where tableabc.ID = :Var1 
End
Run Code Online (Sandbox Code Playgroud)

更新:感谢您试一试,但我没有看到我写的查询和答案中包含的查询之间的任何重大差异.虽然上面的查询在我的最后成功运行,但是当我看到表中的数据时,没有更新.

实际上我正在犯一个v.dumb错误,我正在执行alter storage procedure query - 它运行成功,我假设这将进行必要的更改.后来我执行了存储过程,它完美地工作.谢谢大家节省时间:) ..

And*_*jeŭ 5

对于 Firebird中的运算符而言,就像在Pascal中那样,它增加循环变量并执行代码块直到满足完成值.

在Firebird中,运算符获取一组记录(执行查询的结果)并循环遍历它们.对于每条记录,将执行一段代码.可选地,记录中某些字段的值可以放入INTO部分中列出的局部变量中.这些变量的值可以在代码块中使用.

在您的示例中查询:

SELECT table1.Column1 from table1 into :Var1
Run Code Online (Sandbox Code Playgroud)

将被执行并且对于结果集中的每个记录都将执行运算符:

Update tableabc.column1 = 
  (select tablexyz. column1 from tablexyz where tablexyz.ID = :Var1) 
where tableabc.ID = :Var1
Run Code Online (Sandbox Code Playgroud)

对于它变量:Var将包含当前记录的table1.Column1的值.