用sql语句获取连续整数id中,缺失的最小id和最大id
2019独角兽企业重金招聘Python工程师标准>>>
例如数据库表 table 结构和数据如下,要求使用sql语句查询出连续整数id中,缺失的最小和最大id。
从数据来看,最终结果应该为:最小 4,最大 14。
id |
1 |
2 |
3 |
5 |
7 |
8 |
10 |
15 |
16 |
一、获取缺失的最小id
可以在现有的所有id加1,select id+1 from table; 得到
2 |
3 |
4 |
6 |
8 |
9 |
11 |
16 |
17 |
由于id序列是以整数+1的形式递增,那么这个序列中必然存在最小的缺失id,
去掉表中存在的id,并得到最小值就是我们需要的结果。
select MIN(id+1) from table t1
where not exists(select * from table t2 where t2.id = t1.id + 1);
二、获取缺失的最大id
与上面的操作相反,查询id减1的数字序列 select id+1 from table;
0 |
1 |
2 |
4 |
6 |
7 |
9 |
14 |
15 |
去掉表中已有id,注意范围不能超过表中最大id
select MAX(id-1) from table t1
where not exists(select * from table t2 where t2.id = t1.id - 1)
and id < (select MAX(id) from table)
得到14
转载于:https://my.oschina.net/u/992937/blog/1648363
用sql语句获取连续整数id中,缺失的最小id和最大id相关推荐
- SQL语句获取数据库名、所有表名、所有字段名及字段类型
SQL语句获取所有用户名,数据库名.所有表名.所有字段名及字段类型,方法来自于网上,稍加修改 1.获取所有用户名: SELECT name FROM Sysusers where status='2' ...
- MSSQL 如何采用sql语句 获取建表字段说明、字段备注、字段类型、字段长度
转自: http://www.maomao365.com/?p=4983 <span style="color:red;font-weight:bold;"> 下文讲述 ...
- MySQL sql语句获取当前日期|时间|时间戳
文章转载于:博客园--水狼一族 文章地址:<MySQL sql语句获取当前日期|时间|时间戳> 一.基础时间函数 1.1 获得当前日期+时间(date + time)函数:now() My ...
- 编写SQL语句,从Customers中检索所有的顾客名称(cust_name),并按从Z到A的顺序显示结果
问题: 编写SQL语句,从Customers中检索所有的顾客名称(cust_name),并按从Z到A的顺序显示结果. 答案: SELECT cust_name /* 检索所有的顾客名称(cust_na ...
- sql 语句 将查询结果中数字等标示转成汉字
sql 语句 将查询结果中数字等标示转成汉字 --使用case 语句 将state字段进行转换 0 1 2 正常.删除.禁用 SqlServer: select name,age,sex,sta ...
- 利用SQL语句在SQLite数据库中实现命令执行
SQLite是世界上使用最多的数据库之一.然而,关于其安全方面的研究,都只涉及WebSQL和浏览器开发方面.我们相信这只是SQLite安全的冰山一角. 在对SQLite安全性的长期研究中,我们尝试在任 ...
- 使用SQL语句DELETE删除表中数据
使用SQL语句DELETE删除表中数据 基本语法格式如下: FROM:可选关键字,用在DELETE关键字与目标table_or_view_name. <OUTPUT_Clause>:将已删 ...
- 嵌套SQL语句訪问DB2中SQLCA的调用技巧
在IBM的关系型数据库产品DB2中,使用SQL Communication Area(SQLCA)将程序中嵌套的SQL语句执行情况返回给程序. 在程序中有针对性地对SQLCA实施调用,可对程序中各类S ...
- mysql游标遍历中sql语句出现异常_MySQL中的异常处理,游标
一.异常处理的理解 ERROR 1062 (23000): Duplicate entry '2' for key 'PRIMARY' 错误 4位error code(5位sql statis):错误 ...
最新文章
- 钉钉大数据:贵州政府效率意识全国领先
- hbase全分布安装配置
- 深度学习-机器学习(5.3支持向量机Python的应用)
- 手机号验证_谷歌修改密码时遇到手机号验证的解决办法
- TCP的三次握手建立连接和四次握手释放连接
- 关于导入c3p0-0.9.5.5.jar包引发NoClassDefFoundError、ClassNotFoundException
- 文件格式和扩展名不匹配。文件可能已损坏或不安全。除非您信任其来源,否则请勿打开。是否仍要打开它?
- php判断ie的内核,js判断浏览器版本以及浏览器内核的方法_javascript技巧
- 基于Word2vec文本聚类
- janusgraph 引入 java,从头开始学JanusGraph 0.4
- 广域网宽带接入技术二PPPoE原理及配置
- outlook2019登录126邮箱(imap)
- tp5 上传路径反斜杠的问题 ,反斜杠json_decode函数输出出错的
- mysql 1058_mysql启动服务报1058错误的解决方法
- nodejs (usb)连接打印机 获取打印状态(escpos-printer和node-escpos)检测USB端口的热插拔
- dva学习-入门安装和目录介绍
- 如何在程序里写死一张图片(base64编码,OpenCV)
- 跟我学ShardingSphere之数据分片策略
- 4、keil C51多文件创建小记
- 一次性解决office部署问题(即点即用等)