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

PostgreSQL:esporta i dati risultanti dalla query SQL in Excel/CSV

Esempio con nome file in stile Unix:

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

Leggi il manuale su COPY (link alla versione 8.2).
Devi utilizzare un percorso assoluto per il file di destinazione. Assicurati di citare due volte i nomi dei file con spazi. Esempio per MS Windows:

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

In PostgreSQL 8.2 , con standard_conforming_strings = off per impostazione predefinita, devi raddoppiare le barre rovesciate, perché \ è un carattere speciale e interpretato da PostgreSQL. Funziona in qualsiasi versione. È tutto nel bel manuale:

nome file

Il nome del percorso assoluto del file di input o di output. Gli utenti Windows potrebbero dover utilizzare una E'' stringhe e doppie barre rovesciate usate come separatori di percorso.

O la moderna sintassi con standard_conforming_strings = on (predefinito da Postgres 9.1):

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

Oppure puoi anche usare le barre in avanti per i nomi dei file in Windows.

Un'alternativa è usare il metacomando \copy del client terminale predefinito psql .

Puoi anche utilizzare una GUI come pgadmin e copiare/incollare dalla griglia dei risultati in Excel per piccole query.

Risposta strettamente correlata:

  • Copia i risultati da una vista PostgreSQL in un DB in una tabella in un altro

Soluzione simile per MySQL:

  • Esportazione di dati MySQL in Excel/CSV tramite php