【问题标题】:why postgres functions returns result in one column? [duplicate]为什么 postgres 函数在一列中返回结果? [复制]
【发布时间】:2020-10-16 00:37:43
【问题描述】:

我有一个简单的 PostgreSQL 函数,我认为应该将值返回到单独的列 -115 和 101000005458E6258...,但它返回一个列,其中两个值用逗号分隔 -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();

谢谢。

【问题讨论】:

  • 你应该这样称呼它:select * from get_direction();.
  • 它是一个表函数,所以它应该像SQL语句中的表一样使用。
  • 初学者错误。感谢您的帮助

标签: sql postgresql select sql-function set-returning-functions


【解决方案1】:

如果您希望将结果作为一组列,那么您需要:

SELECT * FROM public.get_direction();

【讨论】:

    猜你喜欢
    • 2014-11-19
    • 2015-12-23
    • 2021-12-22
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多