PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL:Exportieren Sie die resultierenden Daten aus der SQL-Abfrage nach Excel/CSV

Beispiel mit Dateinamen im Unix-Stil:

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

Lesen Sie die Anleitung zu COPY (Link zu Version 8.2).
Sie müssen einen absoluten Pfad verwenden für die Zieldatei. Achten Sie darauf, Dateinamen mit Leerzeichen in doppelte Anführungszeichen zu setzen. Beispiel für MS Windows:

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

In PostgreSQL 8.2 , mit standard_conforming_strings = off standardmäßig müssen Sie Backslashes verdoppeln, da \ ist ein Sonderzeichen und wird von PostgreSQL interpretiert. Funktioniert in jeder Version. Es steht alles im feinen Handbuch:

Dateiname

Der absolute Pfadname der Eingabe- oder Ausgabedatei. Windows-Benutzer müssen möglicherweise ein E'' verwenden Zeichenfolge und doppelte Backslashes, die als Pfadtrennzeichen verwendet werden.

Oder die moderne Syntax mit standard_conforming_strings = on (Standard seit Postgres 9.1):

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

Alternativ können Sie unter Windows auch Schrägstriche für Dateinamen verwenden.

Eine Alternative ist die Verwendung des Meta-Befehls \copy des Standard-Terminalclients psql .

Sie können für kleine Abfragen auch eine GUI wie pgadmin verwenden und aus dem Ergebnisraster nach Excel kopieren/einfügen.

Eng verwandte Antwort:

  • Ergebnisse aus einer PostgreSQL-Ansicht in einer DB in eine Tabelle in einer anderen kopieren

Ähnliche Lösung für MySQL:

  • Exportieren von MYSQL-Daten in Excel/CSV über PHP