Функция Postgresql, возвращающая запись - доступ к отдельным столбцам

У меня есть функция f_product_price(lab uuid, price_list uuid, product_class uuid), которая возвращает запись полезных элементов. Если я использую функцию в предложении FROM, она отлично работает в версии 9.3:

select a.item_name, pl.base_price, ....
from lab l, items a,  f_product_pric(l.id, l.price_list, a.product_class) as pl
where lab.guid=? .....

но это мне нужно в версии 9.2, где он возвращает ошибку:

Существует запись для таблицы "pl", но на нее нельзя ссылаться из этой части запроса.

Кто-нибудь знает, как изменить выбор?
Для моих целей достаточно получить доступ к отдельному элементу по имени в списке выбора следующим образом:

select a.item_name, f_product_pric(l.id, l.price_list, a.product_class).base_price, ....
from lab l, items a .......
where lab.guid=? .....

Но он возвращает синтаксическую ошибку в или около "."
Какой правильный синтаксис?

1 ответ

Я бы написал это так:

select 
    a.item_name, 
    (SELECT base_price FROM f_product_pric(l.id, l.price_list, a.product_class)) as base_price
from lab l, items a
where lab.guid=? .....
Другие вопросы по тегам