gpt4 book ai didi

sql - 如何编写返回一组行的 postgres 函数?

转载 作者:行者123 更新时间:2023-11-29 13:34:32 24 4
gpt4 key购买 nike

主要是我正在寻找实现某种存储 View /报告但带有参数以便您可以轻松更新它们的方法。

我尝试按照 http://wiki.postgresql.org/wiki/Return_more_than_one_row_of_data_from_PL/pgSQL_functions 中的说明进行操作但到目前为止,我无法获得结果列表。

CREATE OR REPLACE FUNCTION myreport(in TEXT) returns setof TEXT AS
$$

select * from ... where ... = '$1'

$$
language sql;

select * from myreport('XOP');

虽然内部 SQL 运行良好并返回所需结果,但函数执行似乎只返回一个项目,而不是行列表(在我的例子中,select 返回单个文本列)。

最佳答案

从参数中取出引号:

select * from ... where ... = $1

但这会返回所有列,而不是函数定义 (setof text) 中声明的单个文本列。应该是:

select text_col from ... where ... = $1

或者,如果您希望所有列都将其声明为返回一个 setof the_table:

CREATE OR REPLACE FUNCTION myreport(in TEXT) returns setof the_table AS

关于sql - 如何编写返回一组行的 postgres 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16317049/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com