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

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

sql
0

6个回答

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

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

3

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
2
weixin_38799368
我是60岁程序员 很溜
10 个月之前 回复

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

1

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;

1

你把表和字段换一下就是
排序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

1

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

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
SQL SERVE根据值查找所在的表和字段
SQL SERVE根据值查找所在的表和字段
SQL查询包含某个字段的所有表名
SQL查询包含某个字段的所有表名 SQL查询包含某个字段的所有表名 在查询分析器中选中目标数据库,执行以下语句。
sqlserver 快速查询存储过程是否用到某个表或者字段
sqlserver 快速查询存储过程或者视图中是否用到某个表或者字段。
通过使用游标实现批量更新表中某个字段的值.sql
oracle 用SQL通过使用游标实现批量更新表中某个字段的值表名和字段名需要修改,字符串的截取的方法需要根据实际情况修改
对某一字段分组后,取出另一字段最大值的所有记录
表:t_test -------------------------------------- id(int) cost(int) des Autoid(id) -------------------------------------- 1 10 aaaa 1 1 15 bbbb 2 1 20 cccc 3 2 80 aaaa 4 2 100 bbbb 5 2 60 dddd 6 3 500 dddd 7 -------------------------------------- 取每一类id中cost最大的纪录
SQLServer中如何将一个字段的多个记录值合在一行显示
SQLServer中如何将一个字段的多个记录值合在一行显示
查询所有数据库-一个数据库中所有表和表的所有字段
查询所有数据库-一个数据库中所有表和表的所有字段,查询所有数据库-一个数据库中所有表和表的所有字段
查询整个数据库中某个特定值所在的表和字段的存储过程
有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,在网上搜了一下,找到一个比较好的方法,通过一个存储过程实现的。只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名。
Hibernate_query查询数据表中的一个字段.
Hibernate_query查询数据表中的一个字段.
SQL根据字段值查找表及字段
当你在使用某软件时,已知某个数据,但是想查看它保存在sql哪个表内字段时,用它非常方便
根据mysql数据的一个字段数据修改另一个字段的数据
要求:查询一个字段的数据,将每个数据拆分,取第一个字符,将第一个字符遍历出来,替换到另一个字段里面
sql语句替换某列所有字段中的某个字符(如替换‘1,2,3,4’中的4)
sql语句替换某列所有字段中的某个字符(如替换‘1,2,3,4’中的4)
SQL寻找连续数字中断数字的例子_mysql
以下例子,可以查找出中断的数字号码,并且不需要原始数据为唯一数值。同时还可以考虑修改成其他方式以满足通用的需求。 例子仅供大家参考,不是最好,但是提供的是一种思路。也可以考虑使用 函数直接返回列表。看自己喜欢。还可以将它修改为有参数的,比如设置上下限范围,等等。
如何根据表里的一个字段,查出它属于哪张表
如何根据表里的一个字段,查出它属于哪张表
判断记录是否存在,取某个特定字段值,取多个字段值
Delphi,判断记录是否存在,取某个特定字段值,取多个字段值 自己工作总结,逐步增加
PHP ThinkPHP 查询一条数据 find方法与getBy字段动态查询
PHP ThinkPHP 查询一条数据 find方法与getBy字段动态查询
查询精确数据sql 语句
经典的sql语句,处理多条记录是需要的东西,很实用。
SQL根据表中某列队值选择关联不同的表
SQL根据表中某列队值选择关联不同的表,两种实现思路。case 及union
sql server 所有表字段第一个字母改小写
默认给每个表增加字段,并且第一个字母改小写
oracle 查询最大值 并找出最大值的相关属性
oracle 查询最大值 并找出最大值的相关属性
C#实现查询特定数据表中的所有字段名称
vs2010环境中使用C#实现对特定数据表的所有字段名称的查询。
sqlserver将视图或表的记录不重复的插入到另一个表
sqlserver将视图或表的记录不重复的插入到另一个表 纯SQL语句,定义为存储过程,程序可以直接调用存储过程,也可以供计划任务调用
SQL SERVER 根据关键字符,将一列分成多行
可根据关键字符将一列分成多行显示,例如 A B 1 1.1.2 拆分成 1 1 1 1 1 2 进行相关的显示
hbase表操作工具类
hbase表操作工具类.连接hbase数据库,根据rowkey删除单条记录,批量删除记录。获取某个字段的值,判断记录是否存在,向hbase表中插单条数据,批量插入到hbase表。 查询表,获取某个字段的值列表,hbase工具
在数据库中的表格里插入一个字段
在已经创建好的数据库的表格里添加一个新的字段,然后可以给这个字段进行设置
SQL批量删除表中指定字段对应的所有约束
SQL批量删除数据表中指定字段对应的所有约束
PL/SQL实现获得所有表名及列名到表
PL/SQL实现获得所有表名及列名到表.
知道某个字段的值(例如:“张三”),需要查询在其他某个表中有没有相同的值
知道某个字段的值(例如:“张三”),需要查询在其他某个表中有没有相同的值
mysql 实现互换表中两列数据方法简单实例
mysql 实现互换表中两列数据方法简单实例
表和字段的注释信息查询语句
表注释信息,没有注释信息的表,字段注释信息,没有注释信息的字段
kettle,sql查询结果做条件循环的作业示例
说明: 一个作业,两个转换,第一个使用【查询分析】的组件接收sql查询结果的字段数据, 第二个转换根据上一个转换的结果为条件执行循环的业务步骤。 提示:请留意第二个转换的属性设置,需要添加命名参数以及勾选复制上一步结果和执行每一行两个选项!附件是打包示例文件,执行时请配置一下测试数据库。 2018/10/17
怎么在oracle10g查询所有包含某字段的表名.doc
javascript动态添加事件.doc VBA_Fun_操作xml.txt Vml数据图表.doc 文字循环滚动无缝连接特效.doc 怎么在oracle10g查询所有包含某字段的表名.doc
按某一字段分组取最大(小)值所在行的数据
按某一字段分组取最大(小)值所在行的数据
Sql语句 查询本周记录\本月记录\本季度记录\本年记录
查询本周记录\本月记录\本季度记录\本年记录等的SQL语句 分Mysql 和SQL Server 查询语句。 有效率的查询语句。
Greenplum 8.2数据词典-查询指定用户下的表和表的字段
Greenplum 8.2数据词典-查询指定用户下的表和表的字段,陆续更新和优化!~
oracle查询相邻上下行值
oacle数据库查询相邻两行同一个字段的值,展示在通一行,前后都可以
mysql任意数据库中在系统所有表中所有字段查询符合任意字符的存储过程
NULL 博文链接:https://gaochunhu.iteye.com/blog/2409829
Sql_Server中如何判断表中某列是否存在
Sql_Server中如何判断表中某列是否存在
SQL 一次性替换数据库中所有表或者所有列中的关键字
包含SQLserver数据库的两个存储过程的完全代码,该存储存储可以一次性替换数据库中所有表或者所有列中的关键字,并介绍其使用方法。本存储过程在我单位更名时起到重要作用。
将数据库中的两个字段合并为一个字段
你有过这样的烦恼吗?你曾经因为这而停住你前进的脚步吗?那快点来看吧。
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习的第一个 java写一个值班表