gpt4 book ai didi

sql - 如何在 SQL Server 中查找数字序列中的空白

转载 作者:行者123 更新时间:2023-12-04 15:14:11 25 4
gpt4 key购买 nike

我正在尝试在此表中找到最小的缺失数字。

+------+--------+
| id | number |
+------+--------+
| 902 | 1 |
| 908 | 2 |
| 1007 | 7 |
| 1189 | 8 |
| 1233 | 12 |
| 1757 | 15 |
+------+--------+

在数字列中,您可以看到数字之间有几个间隙。我需要得到最小间隙后的数字。所以在上面的例子中,我需要数字 3。因为 2 是间隔后的最小数字。

最佳答案

我会使用 lead():

select min(id) + 1
from (select t.*,
lead(id) over (order by id) as next_id
from t
) t
where next_id <> id + 1;

如果您想确保 id 从 1 开始(因此如果缺少“1”,则返回),您可以这样做:

select (case when min(minid) <> 1 then 1 else min(id) + 1 end)
from (select t.*, min(id) over () as minid
lead(id) over (order by id) as next_id
from t
) t
where next_id <> id + 1;

关于sql - 如何在 SQL Server 中查找数字序列中的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38547576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com