0
根據某些輸入參數,我想要一個可以重命名其輸出參數的函數。根據一些輸入參數(前綴/後綴)重命名其輸出參數的函數
我嘗試了一些解決方案來自動執行此任務(主要集中在changing return type for function to polymorphic record variable),但這兩種解決方案都不適用於我。我會很欣賞任何提示。
這個問題讓我發瘋,因爲我目前的設置讓我寫了大量不必要的(?)代碼。 我使用這種函數來格式化視圖中顯示的日期,所以它應該是/ dynamic /。
我現在的設計是這樣的:
CREATE OR REPLACE FUNCTION name_of(
IN in_date date,
OUT mnth_date text,
OUT qrt_date text
) AS
$func$
BEGIN
mnth_date =to_char(in_date ,'YYYY"M"MM');
qrt_date =to_char(in_date ,'YYYY"Q"Q');
END
$func$ LANGUAGE plpgsql;
什麼有這個結果:
select (name_of('2014-04-30')).*
________________________
|mnth_date |qrt_date |
------------------------
|2014M04 |2014Q2 |
我的目標設置,是有類似這樣的結果:
select
A.*, B.*
from
name_of('2014-04-30','foo_prefix') A,
name_of('2014-05-13','creation') B;
__________________________________________________________________________________________________
|foo_prefix_mnth_date |foo_prefix_qrt_date |creation_mnth_date |creation_qrt_date |
--------------------------------------------------------------------------------------------------
|2014M04 |2014Q2 |2014M05 |2014Q2 |
目前我大量使用別名,所以我的代碼看起來類似於:
select
A.mnth_date foo_prefix_mnth_date,
A.qrt_date foo_prefix_qrt_date,
B.mnth_date creation_mnth_date,
B.qrt_date creation_qrt_date
from
name_of('2014-04-30') A,
name_of('2014-05-13') B;
感謝。 我這樣做,但我想放棄這種方法,因爲它沒有效果。 我更新了我的問題以更好地描述問題。 – efreet