Как я могу вернуть ноль в функции, которая возвращает таблицу (column1, column2, column3) в postgres? - PullRequest
0 голосов
/ 27 января 2019

Я сделал функцию на 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.

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...