选择0以上的第一个缺失ID

时间:2016-07-22 12:09:44

标签: sql sql-server-2000

我的列(ID)值

                           5
                           6
                           9

我想从0以上选择第一个缺失的ID。我的欲望选择值将是1.(如果1存在则它将选择2,依此类推......)。 我正在使用此代码:

SELECT MIN(id) As MinMissingId FROM table1 where id>=0

但我的结果是第一个现有的ID而且没有丢失

2 个答案:

答案 0 :(得分:1)

这将返回从1开始的下一个未使用的ID,适用于所有情况,例如:桌子是空的,或者没有间隙:

WITH cte AS
 (
   SELECT id FROM tab
   UNION ALL 
   SELECT 0
 )
SELECT MIN(id) + 1
FROM cte
WHERE NOT EXISTS
 (
   SELECT * 
   FROM tab 
   WHERE tab.id = cte.id + 1
 )

答案 1 :(得分:0)

您可以根据相关question中的答案进行操作。

<div class="section">
  content
</div>
<div class="hero">
  content
</div>
<div class="midPage">
  content
</div>
<div class="section">
  content
</div>
<!-- Scroll Buttons -->
<div class="prev">
 <button class="prevButton">Prev</button>
</div>
<div class="next">
 <button class="nextButton">Next</button>
</div>

想法是找到缺少的第一个id。如果它更大