我想用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个单独的列中返回值?
答案 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(...);
列表中。