SQLite: Як зберегти результат запиту як файл CSV?


Відповіді:


249

Від сюди і коментар d5e5 в:

Вам доведеться переключити вихід у режим csv та перейти на вихідний файл.

sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout

4
де цей файл зберігається?
RayLoveless

34
Він надрукований на стандартний вихід, тобто ваш екран, ймовірно. Для збереження виводу у файл: sqlite> .output test.csv Відновлення результатів друку на екрані: sqlite> .output stdout
d5e5

1
Вказівки на те, де я можу дізнатися, як це зробити в w / Node library?
kuanb

2
Використовуйте sqlite> .output C: /Users/jdoe/Documents/output.csv, якщо ви хочете використовувати певний шлях.
Дастін

Привіт! Я зробив це. Хоча мій запит працював ідеально, вихід файлів порожній. Хтось знає, чому?
Валерія Лобос Осандон

144

Щоб включити імена стовпців у файл csv, ви можете зробити наступне:

sqlite> .headers on
sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout

Щоб перевірити внесені вами зміни, можна виконати цю команду:

sqlite> .show

Вихід:

echo: off   
explain: off   
headers: on   
mode: csv   
nullvalue: ""  
output: stdout  
separator: "|"   
stats: off   
width: 22 18 

3
Дякуємо, що показали, як отримати назви стовпців! Ця відповідь повинна бути вищою.
Стен Джеймс

Зауважте, що sqlite3 додає вихід до кінця файлу без попереднього видалення вмісту.
купив

1
Але кожне .output filename.csvвиконання створює або стирає файл.
купив

25

Гарні відповіді від gdw2 та d5e5. Щоб зробити це трохи простіше, ось рекомендації, зібрані в одну серію команд:

sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout

23

На додаток до вищезазначених відповідей ви також можете використовувати .onceаналогічно .output. Це виводить лише наступний запит у вказаний файл, так що вам не доведеться слідувати .output stdout.

Так у наведеному прикладі

.mode csv
.headers on
.once test.csv
select * from tbl1;

1

Крім того, ви можете зробити це в один рядок (перевірено в win10)

sqlite3 -help
sqlite3 -header -csv db.sqlite 'select * from tbl1;' > test.csv

Бонус: Використання папері з командлетом та трубою (|).

get-content query.sql | sqlite3 -header -csv db.sqlite > test.csv

де query.sql - файл, що містить ваш SQL-запит

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.