sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL:exportera resulterande data från SQL-fråga till Excel/CSV

Exempel med filnamn i Unix-stil:

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

Läs manualen om COPY (länk till version 8.2).
Du måste använda en absolut sökväg för målfilen. Se till att dubbla citattecken filnamn med mellanslag. Exempel för 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 måste du dubbla omvänt snedstreck, eftersom \ är ett specialtecken och tolkas av PostgreSQL. Fungerar i alla versioner. Allt finns i den fina manualen:

filnamn

Det absoluta sökvägsnamnet för indata- eller utdatafilen. Windows-användare kan behöva använda en E'' sträng och dubbla snedstreck som används som vägavgränsare.

Eller den moderna syntaxen med standard_conforming_strings = on (standard sedan Postgres 9.1):

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

Eller så kan du också använda snedstreck för filnamn under Windows.

Ett alternativ är att använda metakommandot \copy för standardterminalklienten psql .

Du kan också använda ett GUI som pgadmin och kopiera/klistra in från resultatrutnätet till Excel för små frågor.

Närbesläktat svar:

  • Kopiera resultat från en PostgreSQL-vy i en DB till en tabell i en annan

Liknande lösning för MySQL:

  • Exportera MYSQL-data till Excel/CSV via php


  1. Optimera gruppvis maximal fråga

  2. Felsökning av SQL Server CPU-prestandaproblem

  3. Fix Msg 529 "Explicit konvertering från datatyp int till xml är inte tillåten" i SQL Server

  4. Snabbaste sättet att utföra kapslade bulkinfogningar med användning av scope_identity()?