我有这样的表:
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的重复序数顺序):
Id Ordinal
10 1
20 2
30 3
40 4
是否可以在SQLite中使用纯SQL?
答案 0 :(得分:2)
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
);