我有多个大型 csv 文件,每个文件在许多地方都有缺失值。当我将 csv 文件导入 SQLite 时,我希望将缺失值记录为 NULL,因为另一个应用程序希望缺失数据由 NULL 指示。我当前的方法无法产生预期的结果。
CSV 文件 (test.csv) 示例如下:
12|gamma|17|delta
67||19|zeta
96|eta||theta
98|iota|29|
第一行已完成;其他每一行都有(或旨在显示!)一个缺失的项目。当我使用以下方式导入时:
.headers on
.mode column
.nullvalue NULL
CREATE TABLE t (
id1 INTEGER PRIMARY KEY,
a1 TEXT,
n1 INTEGER,
a2 TEXT
);
.import test.csv t
SELECT
id1, typeof(id1),
a1, typeof(a1),
n1, typeof(n1),
a2, typeof(a2)
FROM t;
结果是
id1 typeof(id1) a1 typeof(a1) n1 typeof(n1) a2 typeof(a2)
---- ----------- ------ ---------- -- ---------- ------ ----------
12 integer gamma text 17 integer delta text
67 integer text 19 integer zeta text
96 integer eta text text theta text
98 integer iota text 29 integer text
所以缺失的值变成了文本。我希望获得有关如何确保所有缺失值变为 NULL 的指导。