如何在Postgresql查询中访问rowtype中的字段?

时间:2014-10-14 17:02:35

标签: sql postgresql postgresql-9.2

FOO包含A and B

BAR包含X, Y and Z列。

我有一个函数func,它返回表BAR的ROWTYPE

FUNCTION func(arg1, arg2) RETURNS BAR

我想做这样的事情

select A,B, func(A,B).X from FOO;

但它失败并出现以下错误:

 syntax error at or near "."

但是,如果我在函数后面没有使用.<column_name>,那么它会将函数返回的整个RECORD序列化为文本。

如何选择X而不是所有组成字段?

1 个答案:

答案 0 :(得分:2)

找到它。

您需要将函数调用括在括号中,然后使用.

这失败了:

select A,B, func(A,B).X from FOO;

这有效:

select A,B, (func(A,B)).X from FOO;

http://www.postgresql.org/docs/current/static/rowtypes.html