Я сделал функцию на 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.
Большое спасибо!