Могу ли я изменить заголовок столбца в функции PostgreSQL?
У меня есть Postgres VIEW, который четыре раза использует функцию plpgsql для создания отчета о задолженности. Если в строке есть дата в текущем периоде, значение в этой строке указывается в столбце 1, если дата - в прошлом месяце, то значение указывается в столбце 2... и так далее.
Я вызываю функцию с параметром, и этот параметр сообщает функции для расчета долга за этот месяц, долга за последний месяц, долга за 2 месяца назад - или в последнем столбце все до этого.
CREATE OR REPLACE FUNCTION agedebt4(beforem integer, d_details)
RETURNS double precision AS
$BODY$
/* This Func creates a column for Aged Debt Reporting from d_details table
The beforem parameter can be entered as 0,1,2 or 3
0 shows current period debt, 1 previous period, 2 cur period -2
and 3 shows current period less three AND EARLIER. */
DECLARE
curdt date =(CURRENT_DATE);
curdy text = substring(curdt,1,4);
curdm text = substring(curdt,6,2);
curdmi int = curdm::int;
curdyi int = curdy::int;
-- blah
-- blah
-- blah
ВИД имеет
SELECT agedebt4(0,d_details) AS "Current Debt", agedebt4(1,d_details)
AS "CurrPeriod -1 Debt", agedebt4(2,d_details) AS "CurrPeriod -2 Debt", -- etc
Но я хочу изменить заголовки столбцов внутри функции. Так что я мог бы иметь Oct2013 Debt
Sep2013 Debt
Aug2013 Debt
July2013+
Earlier
... (очевидно, названия месяцев в зависимости от месяца исполнения) ... показать на выходе. Я не хочу менять имя функции с agedebt4 - это нормально. Я хочу, чтобы функция изменила отображаемый заголовок столбца.
Можно ли это сделать?
1 ответ
Я уверен, что вы не можете изменить представление (метку столбца) из внутренней функции. Основной причиной является время. Метка указана и жестко закодирована перед любым исполнением. Таким образом, вы не можете изменить его позже - при выполнении функции. То же самое относится и к типам данных - оно фиксируется перед любым выполнением.