您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Postgres中的动态UNION ALL查询

Postgres中的动态UNION ALL查询

这只是一般性准则,您需要在细节(特别是语法)方面进行工作。

您需要创建一个存储过程

information_schema.tables为所需的表名创建一个循环检查过滤器

DECLARE    
    rec record;
    strsql text;
BEGIN

然后为每个表创建一个strsql

 FOR rec IN SELECT table_schema, table_name
            FROM information_schema.tables                
 LOOP
     strsql := strsql || 'SELECT ogc_fid, wkb_geometry FROM ' || 
               rec.table_schema || '.' || rec.table_name || ' UNION ';
 END LOOP;

-- have to remove the last ' UNION ' from strsql

strsql := 'SELECT  row_number() over (ORDER BY a.ogc_fid) AS qid,
         a.wkb_geometry AS geometry FROM (' || strsql || ')';

EXECUTE strsql;
Postgres 2022/1/1 18:27:03 有351人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶