我在SQLite中有一个名为UserAccessLevels
的表,主键的列名是No
。缺少主键0,1,3,4
中主键的序列2
。是否可以通过在SQLite数据库中运行任何查询来找到此不规则主键2
。
答案 0 :(得分:2)
可以使用correlated subquery来检查是否存在相应的下一行(使用最后一行的特殊情况):
SELECT No + 1
FROM UserAccessLevels
WHERE NOT EXISTS (SELECT 1
FROM UserAccessLevels AS T2
WHERE T2.No = UserAccessLevels.No + 1)
AND No != (SELECT MAX(No)
FROM UserAccessLevels);
(如果间隙大于1,则仅返回间隙的开始。)