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.csv
Ausführung wird die Datei erstellt oder gelöscht.
Zusätzlich zu den obigen Antworten können Sie auch .once
auf ä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