sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL:eksporter resulterende data fra SQL-forespørgsel til Excel/CSV

Eksempel med Unix-stil filnavn:

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

Læs manualen om COPY (link til version 8.2).
Du skal bruge en absolut sti for målfilen. Sørg for at dobbeltcitere filnavne med mellemrum. Eksempel for MS Windows:

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

I PostgreSQL 8.2 , med standard_conforming_strings = off som standard skal du fordoble omvendte skråstreg, fordi \ er en speciel karakter og fortolkes af PostgreSQL. Virker i enhver version. Det hele står i den fine manual:

filnavn

Det absolutte stinavn for input- eller outputfilen. Windows-brugere skal muligvis bruge en E'' streng og dobbelte omvendte skråstreg brugt som sti-separatorer.

Eller den moderne syntaks med standard_conforming_strings = on (standard siden Postgres 9.1):

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

Eller du kan også bruge fremadgående skråstreger til filnavne under Windows.

Et alternativ er at bruge metakommandoen \copy af standardterminalklienten psql .

Du kan også bruge en GUI som pgadmin og kopiere/indsætte fra resultatgitteret til Excel for små forespørgsler.

Nært beslægtet svar:

  • Kopiér resultater fra en PostgreSQL-visning i én DB til en tabel i en anden

Lignende løsning til MySQL:

  • Eksport af MYSQL-data til Excel/CSV via php


  1. Sådan fungerer SQLite Trim()

  2. Opretter forbindelse til SQL Server LocalDB ved hjælp af JDBC

  3. Hvad er placeringen af ​​mysql-klienten .my.cnf i XAMPP til Windows?

  4. INSERT SELECT-sætning i Oracle 11G