Re: using a plpgsql function argument as a table column.

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: using a plpgsql function argument as a table column.
Дата
Msg-id CAFj8pRBXeOcRn28yxJkd20uPdHQrfPAPNQb4C8KVdLdyhJ1A8Q@mail.gmail.com
обсуждение исходный текст
Ответ на using a plpgsql function argument as a table column.  (Shaun Savage <savages@taxnvote.org>)
Ответы Re: using a plpgsql function argument as a table column.
Список pgsql-general
Hi

2018-08-29 7:09 GMT+02:00 Shaun Savage <savages@taxnvote.org>:
I have a table with many years as columns. y1976, y2077, .. , y2019,y2020 I want to dynamically return a column from a function.

no - it is not possible -

the functions should to return exact same set of columns. Teoretically you can use SETOF RECORD functions and you can specify result in query like

SELECT * FROM fx('xxx') y(c1, c2, c3, ..)

Personally, your design is unahappy - against to ideas of relations databases. So any native tools will be impossible.

The best what you can is writing query generator and dynamicly create queries on client side.

Regards

Pavel



select * from FUNCTION('y2016') .....

select t1.cola t1.colb, t1.colc, t2.y2016 from ..... Where t2.y2016 != 0;

or if I select year y2012 I want FUNCTION('y2012')

select t1.cola t1.colb, t1.colc, t2.y2012 from ..... Where t2.y2012 != 0;


to generalize

select * from FUNCTION( year_column )

select t1.cola t1.colb, t1.colc, t2.year_column from ..... Where t2.year_column != 0;

is it possible? if so how?








В списке pgsql-general по дате отправления:

Предыдущее
От: "David G. Johnston"
Дата:
Сообщение: Re: using a plpgsql function argument as a table column.
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: using a plpgsql function argument as a table column.