将csv导入sqlite3,但在导入之前更改列的类型

时间:2018-04-03 09:09:01

标签: csv sqlite sqlite-shell

我正在使用一个csv,它有很多列。我决定通过sqlite3 shell导入数据,我发现这非常有用:

.mode CSV
.import my_table.csv my_sqlite_table

这为我节省了大量工作,另一方面,由于所有数据都是TEXT

,它无法控制列和值特征

在shell中是否有任何优雅的方式来首先解决列应该是什么类型或使用null修复特定的空白值?

1 个答案:

答案 0 :(得分:2)

CSV文件中的值始终为字符串。

要更改它,请导入临时表,然后相应地修改值:

INSERT INTO the_actual_table(a, b, c)
SELECT a, CAST(b AS INTEGER), nullif(c, '') FROM temp_table;