sql >> データベース >  >> RDS >> PostgreSQL

Postgresの動的UNIONALLクエリ

    これは、特に構文の詳細で作業する必要がある一般的なガイドラインです。

    ストアドプロシージャを作成する必要があります

    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;
    


    1. PLS-00103動的SQLを使用した外部テーブルの作成

    2. SQLでインデックスを作成してパフォーマンスを向上させる方法

    3. Excel VBAスクリプトからOracleストアドプロシージャを呼び出すにはどうすればよいですか?

    4. PythonMatplotlibとMySQLおよびGinput