我有一个带有一些ID的简单表格,我正在进行此查询:
select funA(t.id), funB(t.id) from customers t
使用记录正确返回2列。函数funA和funB RETURN记录。(不是定义的记录类型)
现在,我希望得到两个函数的所有记录列,而不是2个记录列:
我知道在调用FROM子句中的函数时我可以使用列定义列表,但是这里我调用了选择列表中的函数。当我想在SELECT列表中使用函数调用时,是否有可能以某种方式提供列定义列表?
答案 0 :(得分:1)
尝试:
SELECT (sub.funA_result).field1,
(sub.funA_result).field2,
(sub.funB_result).field3,
(sub.funB_result).field4
FROM (SELECT funA(t.id) as funA_result,
funB(t.id) as funB_result
FROM customers t) sub
您也可以在我对这个类似问题的回答中找到一些细节:Creating a function in Postgresql that does not return composite values