我正在尝试创建一个返回多行的postgresql函数。这是代码的样子:
CREATE OR REPLACE FUNCTION getallwidgets()
RETURNS SETOF widgets AS
$BODY$
SELECT * FROM widgets;
$BODY$
LANGUAGE sql VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION getallwidgets()
OWNER TO postgres;
当我使用pgadmin3测试此代码时,我得到一列数据,每个字段用逗号分隔。我想知道的是如何列出单个字段,这样当我在我调用存储过程的代码中循环数据集时,我可以按列名引用每个字段。
感谢。
编辑1
在pgadmin3中,当我运行脚本时,在输出窗格中,我在一列中获得以下数据:
(1, "widget1","this is my description", 1)
(2, "another widget","description2", 3)
换句话说,我得到两行,上面的数据出现在一列中。 我在期待:
id name description user_id
1 "widget1" "this is my description" 1
2 "another widget" "description2" 3
答案 0 :(得分:0)
您可以从输出中引用列名(如果您知道的话)。例如,如果您的窗口小部件表中有名为col1,col2,col3的列,则可以发出:
SELECT col1, col2, col3
FROM getallwidgets();
这就是你要追求的吗?