2017-10-19 74 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

不知道为什么这是设计决定,因为我明确要求他们 –

相关问题