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

PostgreSQL:結果のデータをSQLクエリからExcel/CSVにエクスポートします

    Unixスタイルのファイル名の例:

    COPY (SELECT * FROM tbl) TO '/var/lib/postgres/myfile1.csv' format csv;
    

    COPYに関するマニュアルを読む (バージョン8.2へのリンク)
    絶対パスを使用する必要があります ターゲットファイル用。ファイル名は必ずスペースで二重引用符で囲んでください。 MS Windowsの例:

    COPY (SELECT * FROM tbl)
    TO E'"C:\\Documents and Settings\\Tech\Desktop\\myfile1.csv"' format csv;
    

    PostgreSQL 8.2の場合 、standard_conforming_strings = off \であるため、デフォルトでは、円記号を2倍にする必要があります。 は特殊文字であり、PostgreSQLによって解釈されます。どのバージョンでも動作します。それはすべてすばらしいマニュアルにあります:

    ファイル名

    入力ファイルまたは出力ファイルの絶対パス名。 Windowsユーザーは、E''を使用する必要がある場合があります パス区切り文字として使用される文字列と二重円記号。

    または、standard_conforming_strings = onを使用した最新の構文 (Postgres 9.1以降のデフォルト):

    COPY tbl  -- short for (SELECT * FROM tbl)
    TO '"C:\Documents and Settings\Tech\Desktop\myfile1.csv"' (format csv);
    

    または、Windowsでファイル名にスラッシュを使用することもできます。

    別の方法は、メタコマンド\copyを使用することです。 デフォルトのターミナルクライアントのpsql

    pgadminのようなGUIを使用して、小さなクエリのために結果グリッドからExcelにコピー/貼り付けすることもできます。

    密接に関連する答え:

    • あるDBのPostgreSQLビューから別のDBのテーブルに結果をコピーします

    MySQLの同様のソリューション:

    • PHPを介してMYSQLデータをExcel/CSVにエクスポートする


    1. コマンドライン引数を使用してPostgreSQL.sqlファイルを実行します

    2. PostgreSQLクエリで名前付き定数を定義する方法はありますか?

    3. SQL SERVER:2つの日付の間の合計日数を取得します

    4. Oracle / SQL:クエリSELECT*FROMレコードWHERErownum>=5 AND rownum<=10-ゼロ行を返すのはなぜですか