Sql 如何在Firebird中使用For循环?

Sql 如何在Firebird中使用For循环?,sql,for-loop,firebird,Sql,For Loop,Firebird,有人能给我解释一下Firebird中For循环的语法吗 以下是我目前掌握的代码: 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.

有人能给我解释一下Firebird中
For
循环的语法吗

以下是我目前掌握的代码:

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
更新:谢谢你尝试一下,但我看不出我写的查询和答案中包含的查询有什么主要区别。虽然上面的查询在我的终端成功运行,但当我看到表中的数据时,并没有发生更新


实际上,我犯了一个v.dumb错误,我正在执行alter存储过程查询,该查询成功运行,我假设这将进行必要的更改。后来我执行了存储过程,它工作得很好。感谢大家抽出时间:)..

forFirebird中的运算符不像for,比方说,在Pascal中,它递增循环变量并执行一块代码,直到满足finish值

在FirebirdFor中,运算符获取一组记录(执行查询的结果)并在其中循环。对于每个记录,将执行一个代码块。可以选择将记录中某些字段的值放入部分中登记的局部变量中。这些变量的值可以在代码块中使用

在您的示例中,查询:

SELECT table1.Column1 from table1 into :Var1
将执行,并且对于结果集中的每个记录,将由操作员执行:

Update tableabc.column1 = 
  (select tablexyz. column1 from tablexyz where tablexyz.ID = :Var1) 
where tableabc.ID = :Var1
For it变量:Var将包含当前记录的table1.Column1的值

create procedure TEST
as
declare variable TMP integer;
begin
  for select one_f from one into :tmp
  do
  begin
      insert into two (two_f) values (:tmp); 
  end
  suspend;
end
对于表“一”中的每一行,执行运算符insert。 Tmp包含表“一”中当前行的值


对我的英语感到抱歉

谢谢你这么好的解释。