PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

PostgreSQL:exporta dados resultantes da consulta SQL para Excel/CSV


Exemplo com nome de arquivo no estilo Unix:
COPY (SELECT * FROM tbl) TO '/var/lib/postgres/myfile1.csv' format csv;

Leia o manual sobre COPY (link para a versão 8.2).
Você deve usar um caminho absoluto para o arquivo de destino. Certifique-se de colocar aspas duplas nos nomes dos arquivos com espaços. Exemplo para MS Windows:
COPY (SELECT * FROM tbl)
TO E'"C:\\Documents and Settings\\Tech\Desktop\\myfile1.csv"' format csv;

No PostgreSQL 8.2 , com standard_conforming_strings = off por padrão, você precisa usar barras invertidas duplas, porque \ é um caractere especial e interpretado pelo PostgreSQL. Funciona em qualquer versão. Está tudo no bom manual:

nome do arquivo

O nome do caminho absoluto do arquivo de entrada ou saída. Os usuários do Windows podem precisar usar um E'' string e barras invertidas duplas usadas como separadores de caminho.

Ou a sintaxe moderna com standard_conforming_strings = on (padrão desde o Postgres 9.1):
COPY tbl  -- short for (SELECT * FROM tbl)
TO '"C:\Documents and Settings\Tech\Desktop\myfile1.csv"' (format csv);

Ou você também pode usar barras para nomes de arquivos no Windows.

Uma alternativa é usar o meta-comando \copy do cliente de terminal padrão psql .

Você também pode usar uma GUI como pgadmin e copiar/colar da grade de resultados para o Excel para pequenas consultas.

Resposta intimamente relacionada:
  • Copiar resultados de uma visualização do PostgreSQL em um banco de dados para uma tabela em outro

Solução semelhante para MySQL:
  • Exportando dados MYSQL para Excel/CSV via php