如何在Postgres中返回表(column1,column2,column3)的函数中返回null?

时间:2019-01-27 02:39:56

标签: function null return procedure

我在postgres上创建了一个函数,以进行一些数学计算并返回具有所获得结果的表, 问题是,如果辅助表上没有数据(COUNT = 0),则结果为空。 在函数开始时,在返回时,我指示要返回的表具有3列,为此,我认为在这种情况下,我应该返回3个空值的选择,但这没有用。

错误:查询的结构与函数结果类型不匹配

我试图返回NULL或SELECT NULL,NULL,NULL,但是它们都不起作用。

CREATE OR REPLACE FUNCTION myfunction(idUsuario integer)
RETURNS TABLE(X FLOAT, Y FLOAT, Z FLOAT) AS
$$
DECLARE
  n  INTEGER;
BEGIN
  SELECT COUNT(*) INTO n FROM...;

   IF n = 0 THEN
    return QUERY SELECT NULL, NULL, NULL;
   END IF;
   --more code
   RETURN QUERY SELECT X, Y, Z FROM ...;
END
$$
LANGUAGE plpgsql;

我希望得到一个包含一个文件和一个包含NULL数据的三列的表。单个NULL数据也将很有用。

非常感谢您!

0 个答案:

没有答案