我已经搜索了但是我总是找到最少和最好的提示。我希望将未使用的下一个递增数字连接起来。如下所示:
entries
1
2
3
5
6
7
如果每个数字都是我表格中的一行,我希望数字4作为结果,在下面的例子中:
1
2
3
4
5
6
我想要数字7作为结果。是否有可能在SQL语句中完成此任务?
最佳, 罗宾
答案 0 :(得分:3)
此查询假设数字1在您的表中
select min(number) + 1 from entries e1
where not exists (
select 1 from entries e2
where e2.number = e1.number + 1
)
如果您想要所有缺失的数字(间隙不大于1)而不是最小的数字,请删除min()
答案 1 :(得分:0)
它认为解决方案是使用下一个值进行自联接,并提取第一个最低结果。例如:
表:values
,列value
SELECT v1.value
FROM values v1
LEFT JOIN values v2 ON v1.value = (v2.value + 1)
WHERE v2.value IS NULL
ORDER BY v1.value ASC
LIMIT 1