gpt4 book ai didi

sql - 如何在表中找到 "holes"

转载 作者:行者123 更新时间:2023-12-03 21:15:25 26 4
gpt4 key购买 nike

我最近继承了一个数据库,其中一个表的主键由编码值 (Part1*1000 + Part2) 组成。
我对该列进行了标准化,但无法更改旧值。
所以现在我有

select ID from table order by ID
ID
100001
100002
101001
...

我想在表中找到新行的“洞”(更准确地说,是 100000 之后的第一个“洞”)。
我正在使用以下选择,但有更好的方法吗?
select /* top 1 */ ID+1 as newID from table
where ID > 100000 and
ID + 1 not in (select ID from table)
order by ID

newID
100003
101029
...

数据库是 Microsoft SQL Server 2000。我可以使用 SQL 扩展。

最佳答案

select ID +1 From Table t1
where not exists (select * from Table t2 where t1.id +1 = t2.id);

不确定这个版本是否会比你最初提到的更快。

关于sql - 如何在表中找到 "holes",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/174532/

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