Soy nuevo en SQLite. ¿Hay alguna manera de exportar los resultados de una consulta a un archivo CSV?
Soy nuevo en SQLite. ¿Hay alguna manera de exportar los resultados de una consulta a un archivo CSV?
Respuestas:
Desde aquí y el comentario de d5e5:
Tendrá que cambiar la salida al modo csv y cambiar a la salida del archivo.
sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout
Para incluir nombres de columna en su archivo csv, puede hacer lo siguiente:
sqlite> .headers on
sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout
Para verificar los cambios que ha realizado, puede ejecutar este comando:
sqlite> .show
Salida:
echo: off
explain: off
headers: on
mode: csv
nullvalue: ""
output: stdout
separator: "|"
stats: off
width: 22 18
.output filename.csv
ejecución crea o borra el archivo.
Además de las respuestas anteriores, también puede usar .once
de manera similar a .output
. Esto genera solo la siguiente consulta en el archivo especificado, por lo que no tiene que seguir .output stdout
.
Entonces, en el ejemplo anterior
.mode csv
.headers on
.once test.csv
select * from tbl1;
Alternativamente, puede hacerlo en una línea (probado en win10)
sqlite3 -help
sqlite3 -header -csv db.sqlite 'select * from tbl1;' > test.csv
Bonificación: Uso de PowerShell con cmdlet y pipe (|).
get-content query.sql | sqlite3 -header -csv db.sqlite > test.csv
donde query.sql es un archivo que contiene su consulta SQL