即使结果集为空,SQLite也会强制打印标头
问题描述:
当查询返回空结果时,不会打印标头。有没有办法在任何情况下强制打印标题?即使结果集为空,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!
答
直到它接收所述第一结果列的sqlite3
命令行外壳不打印头。
您必须修改shell的源代码或使用自己的工具。
+0
不知道为什么这是设计决定,因为我明确要求他们 –
sqlite!= MySQL – Barmar