使用函数结果作为PostgreSQL查询中的列

时间:2012-10-11 21:53:37

标签: postgresql postgresql-9.1

我正在使用PostgreSQL 9.1,假设我在PostgreSQL中有类型:

CREATE TYPE sticker AS (
    customer_id integer,
    customer_machine_id integer,
);

我有一个名为get_sticker的plpgsql返回类型贴纸......

我可以做得很好:

select get_sticker(a_value), * from foo_bar;

但是,这会将结果返回一个元组(完全有意义)。但是,我如何将(基本上解压缩)转换为列?

看起来它会像下面那样,但它失败了。

select get_sticker(a_value).*, * from foo_bar;  -- <<<< FAIL

错误讯息:

ERROR: syntax error at or near "."
SQL state: 42601

1 个答案:

答案 0 :(得分:0)

您需要一组额外的括号:

select (get_sticker(a_value)).*, * from foo_bar;