首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态表查询选择

动态表查询选择
EN

Stack Overflow用户
提问于 2019-09-06 15:44:42
回答 1查看 43关注 0票数 0

大家好,我想创建一个在运行时更新的动态表查询。我有两个postgis表,一个包含点--tablename(记录),另一个包含多边形--tablename(OpDMA)。此select查询:

代码语言:javascript
复制
Create table Op_DMAConn as
SELECT pol.id as polygon_id, poi.id as point_id 
FROM "OpDMA" pol
LEFT JOIN records poi ON (ST_Intersects(poi.geom, pol.geom))

返回点的polygon_id多边形和point_id。我希望这个查询在运行时执行!

EN

回答 1

Stack Overflow用户

发布于 2019-09-06 17:08:40

我想你要找的是'EXECUTE‘语句。https://www.postgresql.org/docs/current/sql-execute.html

例如,您可以这样做:

代码语言:javascript
复制
CREATE OR REPLACE FUNCTION public.fn_pointer(points_table_name varchar, polygon_table_name varchar)
 returns  table(polygon_id int, point_id int)
LANGUAGE plpgsql AS
$$
declare
    final_query varchar;
begin
    query := 'SELECT ST_Contains(polygon.geom, point.geom)
    FROM public."'||points_table_name||'" point, public."'||polygon_table_name||'" polygon;'

    -- do what you have to do to make your query return you correct table

    return query execute final_query;
end
$$
;

select fn_pointer('table_name_1','table_name_2');

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57817761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档