在Postgres中的每一行调用表返回函数

时间:2014-04-10 16:21:34

标签: sql postgresql stored-procedures postgis

我有一个行数未知的表,比如说

-----
geom
-----
0123
3216
6549
...

返回表的函数:

> select * from myFunc('line(1 2, 3 4, 5 6)'::geometry);
----------
val1 val2
----------
10   98
75   65

所以我想为上面表格中的每一行调用这个函数并将它们联合起来。我该怎么做?

1 个答案:

答案 0 :(得分:1)

如果myFunc是一个设置返回函数,您可以将它从FROM部分移动到SELECT部分,同时引用您想要的集合返回记录类型的每个成员

SELECT the_table_with_geom.some_primary_key,
       (myFunc(geom)).val1, (myFunc(geom)).val2
FROM the_table_with_geom;