我有这样的表:
CREATE TABLE Scan
(Id Integer,
Ordinal Integer)
INSERT Scan VALUES(10, 1)
INSERT Scan VALUES(20, 1)
INSERT Scan VALUES(30, 8)
INSERT Scan VALUES(40, 10)
我想更新 Ordinal 列,以便所有数字都像这样按顺序排列(以防按 Id 重复 Ordinal 顺序):
Id Ordinal
10 1
20 2
30 3
40 4
在 SQLite 中可以使用普通 SQL 吗?
最佳答案
SQLite 并没有真正做到这一点的好方法。这是一种不是特别有效的方法:
update scan
set ordinal = (select count(*)
from scan s2
where s2.ordinal < scan.ordinal or
s2.ordinal = scan.ordinal and s2.id <= scan.id
);
关于SQLite - 更新表以按顺序对行进行编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40052029/