Informix SQL 11.5 — 在 while 循环中访问变量
Informix SQL 11.5 — access to variable in while loop
我有这样一个 while 循环:
CREATE PROCEDURE PROCEDURE1()
WHILE EXISTS (SELECT c1 FROM table1)
--how can to get c1?
END WHILE;
END PROCEDURE;
很遗憾,此解决方案无效:
CREATE PROCEDURE PROCEDURE1()
Define c1 type1;
Let c1 = value1;
WHILE EXISTS (SELECT c1 FROM table1)
--c1 is not updated after select
END WHILE;
如何在 while 循环中访问 c1?
您的代码不完全连贯,因此很难可靠地帮助您,但这应该接近您的需要:
CREATE PROCEDURE procedure1()
DEFINE r1 TYPE1; -- Pick your type here
FOREACH SELECT c1 INTO r1 FROM Table1
-- r1 contains the value from the column c1 in the current row
-- in the table; use it
END FOREACH
END PROCEDURE;
虽然您可以将名称 r1
替换为 c1
,但这可能会造成混淆。
您可以调整 SELECT 语句以满足您的需要,添加 DISTINCT 或将值传递到过程中并对其进行过滤等。如果没有匹配的行(那么您要查找的内容不存在) ,循环体将不会被执行。
我保留在 SELECT 语句后缺少分号的权利。
我有这样一个 while 循环:
CREATE PROCEDURE PROCEDURE1()
WHILE EXISTS (SELECT c1 FROM table1)
--how can to get c1?
END WHILE;
END PROCEDURE;
很遗憾,此解决方案无效:
CREATE PROCEDURE PROCEDURE1()
Define c1 type1;
Let c1 = value1;
WHILE EXISTS (SELECT c1 FROM table1)
--c1 is not updated after select
END WHILE;
如何在 while 循环中访问 c1?
您的代码不完全连贯,因此很难可靠地帮助您,但这应该接近您的需要:
CREATE PROCEDURE procedure1()
DEFINE r1 TYPE1; -- Pick your type here
FOREACH SELECT c1 INTO r1 FROM Table1
-- r1 contains the value from the column c1 in the current row
-- in the table; use it
END FOREACH
END PROCEDURE;
虽然您可以将名称 r1
替换为 c1
,但这可能会造成混淆。
您可以调整 SELECT 语句以满足您的需要,添加 DISTINCT 或将值传递到过程中并对其进行过滤等。如果没有匹配的行(那么您要查找的内容不存在) ,循环体将不会被执行。
我保留在 SELECT 语句后缺少分号的权利。