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

OracleSQLSelectをPostgreSQLselectに変換する

    ANSI-92JOIN構文を使用して書き直されたクエリは次のとおりです。

      SELECT a.abx_apo_number,
             COUNT(ap1.process_mode) AS NUM_PLANNING,
             COUNT(ap2.process_mode) AS NUM_SETUP,
             COUNT(ap3.process_mode) AS NUM_OUTPUT
         FROM ABX a
    LEFT JOIN USER_INSTANCE u ON u.abx_apo_number = a.abx_apo_number
    LEFT JOIN ACTIVE_PROCESS ap1 ON ap1.process_instance_number = u.instance_number
                                AND ap1.process_mode = 'PLANNING'
    LEFT JOIN ACTIVE_PROCESS ap2 ON ap2.process_instance_number = u.instance_number
                                AND ap2.process_mode = 'SETUP'
    LEFT JOIN ACTIVE_PROCESS ap3 ON ap3.process_instance_number = u.instance_number
                                AND ap3.process_mode = 'OUTPUT'
     GROUP BY a.abx_apo_number
    

    (+) Oracle固有のLEFTOUTERJOIN構文です。これを削除するには、各 USER_INSTANCE.instance_numberが必要になります プロセスモードの値は、PLANNING、SETUP、およびOUTPUTの3つすべてである必要があります。1つを省略すると、abx_apo_numberは出力に表示されません。



    1. SQLServer2008および2012にアクセスするPDODBLIB

    2. mySQL-複数の行を返すselectで複数の列を更新します

    3. PHPを使用してOracleデータベースからデータをフェッチする方法

    4. SQLServerデータベースで主キー制約の有無にかかわらずすべてのテーブルを取得する方法-SQLServer/TSQLチュートリアル59