sql >> Base de Datos >  >> RDS >> PostgreSQL

PostgreSQL:exporte los datos resultantes de la consulta SQL a Excel/CSV

Ejemplo con nombre de archivo estilo Unix:

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

Lee el manual sobre COPY (enlace a la versión 8.2).
Tienes que usar una ruta absoluta para el archivo de destino. Asegúrese de incluir comillas dobles en los nombres de los archivos con espacios. Ejemplo para MS Windows:

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

En PostgreSQL 8.2 , con standard_conforming_strings = off de forma predeterminada, debe duplicar las barras diagonales inversas, porque \ es un carácter especial e interpretado por PostgreSQL. Funciona en cualquier versión. Todo está en el excelente manual:

nombre de archivo

El nombre de ruta absoluto del archivo de entrada o salida. Es posible que los usuarios de Windows necesiten usar una E'' cadenas y barras invertidas dobles utilizadas como separadores de ruta.

O la sintaxis moderna con standard_conforming_strings = on (predeterminado desde Postgres 9.1):

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

O también puede usar barras diagonales para los nombres de archivo en Windows.

Una alternativa es usar el meta-comando \copy del cliente terminal predeterminado psql .

También puede usar una GUI como pgadmin y copiar/pegar desde la cuadrícula de resultados a Excel para consultas pequeñas.

Respuesta estrechamente relacionada:

  • Copie los resultados de una vista de PostgreSQL en una base de datos a una tabla en otra

Solución similar para MySQL:

  • Exportación de datos MYSQL a Excel/CSV a través de php