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
4

1 回答 1

0

您需要一组额外的括号:

select (get_sticker(a_value)).*, * from foo_bar;
于 2012-10-11T23:36:33.840 回答