PostgreSQL函数为什么会只返回一个列的结果?

3
我有一个简单的PostgreSQL函数,我期望它应该将值返回到不同的列 -115101000005458E6258... 中,但它返回了一个包含用逗号分隔的两个值的单个列 -115,101000005458E6258...。我的函数有什么问题?
CREATE OR REPLACE FUNCTION public.get_direction()
RETURNS TABLE(direction integer, geom geometry)             
AS $$
BEGIN
RETURN QUERY SELECT 
    heading-lag(heading) over (order by time) AS direction, a.geom AS geom 
    FROM public.mytable a 
    WHERE reg='125123' 
    GROUP BY heading, a.geom , a.time;
END; $$
LANGUAGE 'plpgsql';

我调用了这个函数。

SELECT public.get_direction();

谢谢。


1
你应该这样调用它:select * from get_direction(); - freakish
这是一个表函数,因此应该像在 SQL 语句中使用表一样使用。 - Laurenz Albe
初学者错误。谢谢帮助。 - markus
1个回答

8
如果您想将结果作为一组列返回,则需要:
SELECT * FROM public.get_direction();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接