sql >> Databáze >  >> RDS >> PostgreSQL

Dynamický dotaz UNION ALL v Postgresu

Toto jsou pouze obecné pokyny, které potřebujete zapracovat na podrobnostech, zejména na syntaxi.

Musíte vytvořit proceduru úložiště

Vytvořte smyčku kontroly information_schema.tables filtr pro požadované názvy tabulek

DECLARE    
    rec record;
    strSQL text;
BEGIN

Poté vytvořte strSQL s každou tabulkou

 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;


  1. Najděte zdroj dat pro určitou tabulku - ORACLE

  2. Chyba výjimky Java - Sqlite PrepareStatement.setBlob

  3. Načítání určitých řetězců v řetězci pomocí Oracle SQL

  4. Obnovte svou databázi WordPress pomocí WP-CLI