我想在 postgres 中声明变量而不是在函数中...
Declare
c varchar;
a integer;
b integer;
select b = count (*) from table
set a = 1
while a <= b
begin
select c = [c] from table where id = a
if (c = '1')
insert into table2 select(*) from table
end
set a = a+1
但错误 ERROR: "varchar"处或附近的语法错误 第 2 行:c 变量; ^ 我希望任何人都可以帮助我
最佳答案
如果您使用的是 9.0,则可以使用 DO 语句使用匿名 block :
http://www.postgresql.org/docs/current/static/sql-do.html
在 9.0 之前你不能使用匿名 pl/pgSQL block ,你需要为此创建一个函数。
此外,您的 pl/pgSQL 语法完全错误。
同一行中不能有赋值语句和 WHILE 语句。您还缺少 WHILE 循环的其他 requird 关键字。
请引用手册学习正确的语法:
http://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#AEN50163
从 select 中读取值到变量的语法也是错误的。
检索 SELECT 结果的正确语法是:
SELECT count(*)
INTO b
FROM some_table;
也请查看手册:
http://www.postgresql.org/docs/current/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-SQL-ONEROW
关于postgresql - 通过 postgres 声明变量不在函数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5456581/