-1

我有一个带有一些 id 的简单表,我正在执行以下查询:

select funA(t.id), funB(t.id) from customers t

正确返回 2 列的记录。函数 funA 和 funB RETURN 记录。(不是定义的记录类型)

现在,我想获取这两个函数的所有记录列,而不是 2 个记录列:

我知道当我在 FROM 子句中调用函数时可以使用列定义列表,但在这里我调用的是选择列表中的函数。当我想在 SELECT 列表中使用函数调用时,是否可以以某种方式提供列定义列表?

4

1 回答 1

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

您还可以在我对类似问题的回答中找到一些详细信息:在 Postgresql 中创建一个不返回复合值的函数

于 2012-12-22T11:27:18.943 回答