SQL查询一个表中某个字段值第一个不连续的记录

假设有一张表 A,有字段 id, 查询A表的id ,先对id去重再从小到大排序,再找出第一个不连续的id,也就是后一个id是前一个id+1,找到最后一个id还未找到则返回最后一个id
例如 1,2,3,4,6,7,8,9 的第一个不连续id是4

sql

6个回答

如果只想找出第一个不连续的id,不需要排序

select min(a.id) from A a
left join A b
on a.id = b.id -1
where b.id is null

mysql 了解下,因为ID不会重复,所以没去重,去重还耗费性能。

 SELECT tab.id FROM tab AS tab
 WHERE tab.id +1 NOT IN (SELECT id FROM tab )
 AND tab.id != (SELECT MAX(ID) FROM tab)
 ORDER BY tab.id ASC
weixin_38799368
我是60岁程序员 很溜
一年多之前 回复

select top 1 AID from (
select A0.ID as AID,A1.ID as BID from
(SELECT distinct [ID] FROM [A]) A0
left join (SELECT distinct [ID] FROM [A]) A1 on A0.ID+1=A1.ID
) t where BID is null order by AID asc

ids为id的集合
int i = min(ids);
int len = ids.length;
int _id = 0;
for v1 as select id from A order by id do
if id <> i then
_id = id -1;
break;
end if;
end for;

你把表和字段换一下就是
排序select distinct c_score from t_test order by c_score

不连续的
select case when c_score != (select distinct c_score from t_test order by c_score limit 1) then c_score
else (select distinct c_score from t_test order by c_score desc limit 1) end as c_score
from(
select c_score
from (select distinct c_score from t_test order by c_score) t
where not exists (select 1 from t_test where c_score = t.c_score-1) order by c_score desc limit 1
)a

如果是1238的ID查询出哪个ID这个需要根据你具体场景来调整sql

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

8
SQL查询语句,一个字段存储的数据为数组字符串,查询其是否包含某个值
1
分区表中分区字段的选择
3
SQL查询一个表t中所有A字段中存在某一位置的字符不等于'0'同时B字段相同位置的字符等于'2'或者'3'的记录
3
数据表中可不可以全部是varchar类型,有的字段值是数字
2
MySql 通过一个表的字段查另一个表的字段
2
SQL主表和一个子表关联,现在想取子表的数据写入到子表的4个字段中去,有没有什么好的实现方式呢?
2
SQL联表查询,结果只显示需要的字段
2
ibatis 动态sql中<isNotEmpty>更新字段为空问题
1
.net 如何随机sqlserver一个表的六个id,并把随机出来的id插入到这个表的新字段中
1
kettle 记录过滤in list 怎么选择另外一个表中的字段
2
如何匹配匹配两个表的相同字段来为其中一个表的列赋值
1
在hive中有两个分区字段,查询的时候where 用到其中一个字段,那么最终会使用分区吗?
1
mysql5.6以下怎么查询指定字段中json中的值
1
java怎么查询access2000数据库中某个字段的最近时间数据,sql语句怎么写
2
关于distinct字段查询的sql问题求助!!!
1
SQL server 存储数据时,发现过长的字段值显示为空(不是NULL) 就是啥也没有
2
SQL查找表内某字段中非指定格式的所有数据
1
为什么在做指定数据导出Excel时,要查询一个不存在的字段
1
MySQL模糊查询,如何查出某个字段匹配传入参数的开头几位的记录
3
同一个sql中显示同一个字段的3个值,以第一个结果作为第二个结果的条件,第二个结果作为第三个结果的条件