2

doyPostgreSQL に、日付から (年間通算日)を抽出する SQL クエリがあります。私のクエリは次のとおりです。

select extract(doy from date_col) as n
from mytable
order by n

のような関数にしたいですextract_doy(tablename, date_column_name)
どうすればいいですか?

4

1 に答える 1

2

double のセットを返したいと仮定すると、次のように動作するはずです。

CREATE OR REPLACE FUNCTION tmp_extract_doy(table_name text, column_name text) 
RETURNS SETOF DOUBLE PRECISION
AS
$BODY$
DECLARE
BEGIN
    RETURN QUERY EXECUTE format('SELECT EXTRACT(doy from %I) AS n FROM %I ORDER BY n', column_name, table_name);
END
$BODY$
  LANGUAGE plpgsql
  COST 100;
于 2013-02-07T04:21:42.500 に答える