Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将csv导入sqlite3,但在导入前更改列的类型_Csv_Sqlite_Sqlite Shell - Fatal编程技术网

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

将csv导入sqlite3,但在导入前更改列的类型,csv,sqlite,sqlite-shell,Csv,Sqlite,Sqlite Shell,我正在使用一个csv,它有许多列。我决定通过sqlite3 shell导入数据,我发现这非常有用: .mode CSV .import my_table.csv my_sqlite_table 这为我节省了大量工作,另一方面,由于所有数据都是TEXT 在shell中,是否有任何优雅的方法来首先解决列应该是什么类型,或者用null修复特定的空白值 CSV文件中的值始终是字符串 要更改该值,请导入到临时表中,然后适当修改值: INSERT INTO the_actual_table(a, b, c

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

.mode CSV
.import my_table.csv my_sqlite_table
这为我节省了大量工作,另一方面,由于所有数据都是
TEXT


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

CSV文件中的值始终是字符串

要更改该值,请导入到临时表中,然后适当修改值:

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