我正在尝试在Postgres中编写一个函数,它需要一个这样的循环:
for r in (SELECT a, b FROM table_abc)
LOOP
return next r;
END LOOP;
我想对此做的是附加一个where子句。像这样:
whereClause := 'blah blah'
....
for r in (execute 'SELECT a, b FROM table_abc' || whereClause)
LOOP
return next r;
END LOOP;
有办法做到这一点吗?
答案 0 :(得分:0)
这似乎有效:
finalsql := 'SELECT a, b FROM table_abc' || whereClause;
RAISE INFO 'Final sql is: % ', finalsql;
for r in EXECUTE finalsql
LOOP
return next r;
END LOOP;
我认为括号引起了一些问题。