2017-10-19 120 views
0

當查詢返回空結果時,不會打印標頭。有沒有辦法在任何情況下強制打印標題?即使結果集爲空,SQLite也會強制打印標頭

例如,在這種情況下,結果.headers編譯確實打印到.output文件,但在查詢返回空結果的情況下該文件是空的(無頭)。我仍然希望在空角落的情況下將文件頭打印到文件中,因爲生成的輸出文件適用於其他系統,並且依賴於這些頭文件。是否有可能在結果文件中強制標題?

-- setup to provide headers and to output as csv 
.headers on 
.mode csv 
-- Attaching the databases 
attach '/tmp/1.db' as existingdb; 
attach '/tmp/2.db' as newdb; 
-- Deletions query 
.output /tmp/test/res/deletes.csv 
SELECT a.sku AS "old:sku" , a.c1 AS "old:c1" , a.c2 AS "old:c2" FROM existingdb.products AS a LEFT JOIN newdb.products AS b on a.sku = b.sku WHERE b.sku IS NULL; 

另一個簡單的例子:

sqlite> .tables 
sqlite> create table test(a,b,c); 
sqlite> select * from test; 
sqlite> 
sqlite> insert into test values (1,2,3); 
sqlite> select * from test; 
1|2|3 
sqlite> .headers on 
sqlite> select * from test; 
a|b|c <<< the headers are printed 
1|2|3 
sqlite> select * from test where a = 2; 
sqlite> result is empy - no headers are printed! 
+0

sqlite!= MySQL – Barmar

回答

1

直到它接收所述第一結果列的sqlite3命令行外殼不打印頭。

您必須修改shell的源代碼或使用自己的工具。

+0

不知道爲什麼這是設計決定,因爲我明確要求他們 –