我已经搜索过了,但我总是找到最少和最伟大的暗示。我想让下一个升序数字在行中没有使用。如下所示:
entries
1
2
3
5
6
7如果每个数字都对应于表中的一行,则结果是数字4,并在下面的示例中这样做:
1
2
3
4
5
6所以我想要数字7。是否有可能在SQL语句中完成这一任务?
最好的,罗宾
发布于 2014-12-18 17:42:56
此查询假定数字1在表中。
select min(number) + 1 from entries e1
where not exists (
select 1 from entries e2
where e2.number = e1.number + 1
)如果您想要所有缺失的数字(空隙不大于1),而不是最小的数字,那么删除min()
发布于 2014-12-18 17:41:03
它认为解决方案是与下一个值进行自连接,并提取第一个最低的结果。示例:
表: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 1https://stackoverflow.com/questions/27552472
复制相似问题