【发布时间】:2014-11-01 09:40:27
【问题描述】:
我有一个带有整数 ID 列的表。我想获得此列的最小未使用值。查询应该找到表 ID 中的第一个漏洞并获取其中的最小值。我会试着用一些例子来解释它。
示例 1:无孔表
在这种情况下,我有一个没有孔的表,查询应该简单地获取最小未使用值:应该得到:4
|id|
|1 |
|2 |
|3 |
示例 2:顶部有孔的桌子
在这种情况下,我们在顶部有一个洞(缺失值:1)。查询找到洞并获取其中的最小值:应该得到 1。
|id|
|2 |
|3 |
|4 |
同样在这种情况下,我们在顶部有一个洞,但里面有更多的缺失值(缺失值:1 和 2)。查询找到洞并获取其中的最小值:应该得到 1。
|id|
|3 |
|4 |
|5 |
示例 3:中间有洞的桌子
在这种情况下,我们在中间有一个洞(缺失值:2 和 3)。查询找到了洞并得到了其中的最小值:应该得到 2。
|id|
|1 |
|4 |
|5 |
示例 4:顶部和中间有孔的桌子
在这种情况下,我们有多个孔:一个在顶部(缺失值:1)和一个在中间(缺失值:3)。查询找到第一个洞并获取其中的最小值:应该得到 1。
|id|
|2 |
|4 |
|6 |
我已经尝试了this post 中提出的解决方案,但在我的情况下它没有按预期工作。有什么想法吗?
【问题讨论】: