Функция 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=? .....