Ich bin neu in SQLite. Gibt es eine Möglichkeit, die Ergebnisse einer Abfrage in eine CSV-Datei zu exportieren?
Ich bin neu in SQLite. Gibt es eine Möglichkeit, die Ergebnisse einer Abfrage in eine CSV-Datei zu exportieren?
Antworten:
Von hier und dem Kommentar von d5e5:
Sie müssen die Ausgabe in den CSV-Modus und in die Dateiausgabe wechseln.
sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout
Um Spaltennamen in Ihre CSV-Datei aufzunehmen, haben Sie folgende Möglichkeiten:
sqlite> .headers on
sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout
Um die vorgenommenen Änderungen zu überprüfen, können Sie diesen Befehl ausführen:
sqlite> .show
Ausgabe:
echo: off
explain: off
headers: on
mode: csv
nullvalue: ""
output: stdout
separator: "|"
stats: off
width: 22 18
.output filename.csvAusführung wird die Datei erstellt oder gelöscht.
Zusätzlich zu den obigen Antworten können Sie auch .onceauf ähnliche Weise wie verwenden .output. Dies gibt nur die nächste Abfrage an die angegebene Datei aus, sodass Sie nicht folgen müssen .output stdout.
Also im obigen Beispiel
.mode csv
.headers on
.once test.csv
select * from tbl1;
Alternativ können Sie dies in einer Zeile tun (getestet in win10).
sqlite3 -help
sqlite3 -header -csv db.sqlite 'select * from tbl1;' > test.csv
Bonus: PowerShell mit Cmdlet und Pipe verwenden (|).
get-content query.sql | sqlite3 -header -csv db.sqlite > test.csv
Dabei ist query.sql eine Datei, die Ihre SQL-Abfrage enthält