我正在將一些資料匯入 sqlite,其中一些列使用空值表示該值與前一行的值相同。
我怎樣才能完全在 SQLite SQL 中完成這個?我有一個表示排序的行號。
例如,在 importing 和 processing 之后with-blank,它應該看起來與 importing 相同non-blank。
$ cat with-blank.csv
n,x,y
1,aaa,foo
2,,bar
3,,baz
4,bbb,able
5,,baker
cat non-blank.csv
n,x,y
1,aaa,foo
2,aaa,bar
3,aaa,baz
4,bbb,able
5,bbb,baker
sqlite> .mode csv
sqlite> .import with-blank.csv t
注意:不是在 Excel 作業表(或 SQLite)中使用最接近的填充單元格的值填充空單元格的副本,其中包括 Excel 作為潛在的解決方案。
我正在尋找可以執行此操作的純 SQL 命令。我當然可以在匯入 SQLite 之前將此作為預處理步驟,但我想了解哪些命令(如果有)可以在 SQLite 中執行此操作。
uj5u.com熱心網友回復:
匯入表后,您可以使用相關子查詢更新空列值:
UPDATE tablename AS t1
SET x = (
SELECT t2.x
FROM tablename t2
WHERE t2.n < t1.n AND COALESCE(t2.x, '') <> ''
ORDER BY t2.n DESC LIMIT 1
)
WHERE COALESCE(t1.x, '') = '';
請參閱演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/422610.html
標籤:
上一篇:如何回圈表格中每一列的完整行?
