如何使用函数返回两列

时间:2015-07-14 04:43:46

标签: sql postgresql

我想用SQL函数返回2个值:

CREATE OR REPLACE FUNCTION get_avg_prices(...)
  RETURNS table(avg_sale_price decimal, avg_rent_price decimal) 
AS
$$

SELECT 
  building_prices.avg_sale_price, 
  building_prices.avg_rent_price
FROM 
  ...

$$
  LANGUAGE sql;

它可以工作但返回单列中的值:

如何在2个单独的列中返回值?

1 个答案:

答案 0 :(得分:3)

表函数(定义为File "quicksort.py", line 25, in <module> print quicksort([1,5,3,4,9,10],0,5) File "quicksort.py", line 22, in quicksort quicksort(array, left, Pivot-1) File "quicksort.py", line 22, in quicksort quicksort(array, left, Pivot-1) File "quicksort.py", line 19, in quicksort Pivot = partition(array,left,right); File "quicksort.py", line 11, in partition array[Pivot], array[i-1] = array[i-1], array[Pivot] IndexError: list index out of range returns table的函数)需要像表一样在returns setof子句中使用。

所以你需要使用:

from

只应将标量函数(仅返回单个值的函数,例如数字)放入select * from get_avg_prices(...); 列表中。