POSTGRES:在循环中使用时追加where子句

时间:2014-10-01 18:00:46

标签: sql postgresql stored-procedures

我正在尝试在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;

有办法做到这一点吗?

1 个答案:

答案 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;

我认为括号引起了一些问题。