2010-07-23 80 views
5

我使用Postgres的SQL语言返回采用退货TABLE命令表中的字符串:Postgres的“返回表”返回

CREATE OR REPLACE FUNCTION procreadbudget() 
    RETURNS TABLE(budgetmonth character, budgetincome numeric, budgetexpense numeric) AS 
$BODY$ 
SELECT budget_month, budget_income, budget_expense FROM budget ORDER BY unique_id; 
$BODY$ 
    LANGUAGE 'sql' VOLATILE 

所有数据返回为一个逗号分隔的字符串,而不是作为一个表:

"(Jan,1123,1201)" 
"(Feb,1098,996)" 
"(Mar,1545,1345)" 
"(Apr,1564,1952)" 
"(May,1123,990)" 
"(Jun,1345,1234)" 
"(Jul,1234,878)" 
"(Aug,1139,1187)" 
"(Sep,1076,1123)" 
"(Oct,873,956)" 
"(Nov,1298,1423)" 
"(Dec,1123,1324)" 

任何建议,请 迈克

+0

所以现在的问题是,你能指望它返回? – 2010-07-23 08:50:14

回答

0

这样做:

select t.budgetmont, 
     t.budgetincome, 
     t.budgetexpense 
from procreadbudget() as t 
7

使用

SELECT * FROM procreadbudget(); 

,而不是

SELECT procreadbudget();