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 - 它运行成功,我假设这将进行必要的更改.后来我执行了存储过程,它完美地工作.谢谢大家节省时间:) ..
对于 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的值.
| 归档时间: |
|
| 查看次数: |
10700 次 |
| 最近记录: |