PostgreSQL - 函数声明 - QUERY

时间:2017-05-24 14:25:31

标签: postgresql

如何在函数声明中将“EXECUTE sql_string”更改为“RETURN QUERY”,但是必须使用where数组。
换句话说,如何改变这个

p_sql := 'SELECT *
    FROM tbl
    WHERE ' || array_to_string(where_arr, ' AND ');

FOR item IN EXECUTE p_sql
  LOOP
    RETURN NEXT item;
  END LOOP;

到这个

RETURN QUERY
    SELECT *
    FROM tbl
    WHERE || array_to_string(where_arr, ' AND '); -- this is the place

我希望我的编辑器(phpstorm,notepad ++)将SQL视为SQL而不是字符串。

1 个答案:

答案 0 :(得分:0)

https://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#PLPGSQL-STATEMENTS-RETURNING

return query execute $$
    select *
    from tbl
    where $$ || array_to_string(where_arr, ' and ');