PostgreSQL Sum 函数是无效的类型名称?

PostgreSQL Sum function is an invalid type name?

提问人:Whitney Fisher 提问时间:6/16/2023 最后编辑:GMBWhitney Fisher 更新时间:6/16/2023 访问量:39

问:

因此,我正在尝试创建一个函数,该函数将从“Rental_Instances”表中找到与特定“Category_id”相对应的“total_rental_time”变量的总和,然后将该总和更改为 varchar 格式以便于阅读。 但是,由于某种原因,sum 函数未按预期工作。这是我的代码:

CREATE FUNCTION readable_date_time_format (cat_id INT)
RETURNS VARCHAR(11)
LANGUAGE plpgsql
AS $$
   BEGIN
      DECLARE rental_num INT;
      DECLARE total_time_rented VARCHAR(11);
      SELECT SUM(total_rental_time)
         FROM rental_instances
         WHERE rental_instances.category_id = cat_id
         INTO rental_num;
      total_time_rented = CONCAT(rental_num, ' Days');
      RETURN total_rental_time;
   END;
$$;

我正在将它写入pgADMIN,当我运行它时,我收到以下错误消息:错误消息

我做错了什么?

postgresql 函数 和语法错误 pgadmin

评论

2赞 GMB 6/16/2023
语法为: postgresql.org/docs/current/sql-selectinto.htmlselect ... into ... from ... where ...
1赞 njzk2 6/16/2023
为什么需要一个函数?
1赞 jjanes 6/16/2023
在 plpgsql 中,变量声明出现在 BEGIN 之前。
1赞 Whitney Fisher 6/16/2023
@GMB就是这样!我的语法错了......哇!非常感谢!
0赞 Frank Heikens 6/16/2023
对于这样的事情,你不需要一个函数(视图也很好),如果你确实使用了一个函数,你不需要plpgsql,因为sql已经足够好了。

答: 暂无答案