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相关推荐

  1. SQL语句获取数据库名、所有表名、所有字段名及字段类型

    SQL语句获取所有用户名,数据库名.所有表名.所有字段名及字段类型,方法来自于网上,稍加修改 1.获取所有用户名: SELECT name FROM Sysusers where status='2' ...

  2. MSSQL 如何采用sql语句 获取建表字段说明、字段备注、字段类型、字段长度

    转自: http://www.maomao365.com/?p=4983 <span style="color:red;font-weight:bold;"> 下文讲述 ...

  3. MySQL sql语句获取当前日期|时间|时间戳

    文章转载于:博客园--水狼一族 文章地址:<MySQL sql语句获取当前日期|时间|时间戳> 一.基础时间函数 1.1 获得当前日期+时间(date + time)函数:now() My ...

  4. 编写SQL语句,从Customers中检索所有的顾客名称(cust_name),并按从Z到A的顺序显示结果

    问题: 编写SQL语句,从Customers中检索所有的顾客名称(cust_name),并按从Z到A的顺序显示结果. 答案: SELECT cust_name /* 检索所有的顾客名称(cust_na ...

  5. sql 语句 将查询结果中数字等标示转成汉字

    sql 语句  将查询结果中数字等标示转成汉字 --使用case 语句 将state字段进行转换 0 1  2  正常.删除.禁用 SqlServer: select name,age,sex,sta ...

  6. 利用SQL语句在SQLite数据库中实现命令执行

    SQLite是世界上使用最多的数据库之一.然而,关于其安全方面的研究,都只涉及WebSQL和浏览器开发方面.我们相信这只是SQLite安全的冰山一角. 在对SQLite安全性的长期研究中,我们尝试在任 ...

  7. 使用SQL语句DELETE删除表中数据

    使用SQL语句DELETE删除表中数据 基本语法格式如下: FROM:可选关键字,用在DELETE关键字与目标table_or_view_name. <OUTPUT_Clause>:将已删 ...

  8. 嵌套SQL语句訪问DB2中SQLCA的调用技巧

    在IBM的关系型数据库产品DB2中,使用SQL Communication Area(SQLCA)将程序中嵌套的SQL语句执行情况返回给程序. 在程序中有针对性地对SQLCA实施调用,可对程序中各类S ...

  9. mysql游标遍历中sql语句出现异常_MySQL中的异常处理,游标

    一.异常处理的理解 ERROR 1062 (23000): Duplicate entry '2' for key 'PRIMARY' 错误 4位error code(5位sql statis):错误 ...

最新文章

  1. 钉钉大数据:贵州政府效率意识全国领先
  2. hbase全分布安装配置
  3. 深度学习-机器学习(5.3支持向量机Python的应用)
  4. 手机号验证_谷歌修改密码时遇到手机号验证的解决办法
  5. TCP的三次握手建立连接和四次握手释放连接
  6. 关于导入c3p0-0.9.5.5.jar包引发NoClassDefFoundError、ClassNotFoundException
  7. 文件格式和扩展名不匹配。文件可能已损坏或不安全。除非您信任其来源,否则请勿打开。是否仍要打开它?
  8. php判断ie的内核,js判断浏览器版本以及浏览器内核的方法_javascript技巧
  9. 基于Word2vec文本聚类
  10. janusgraph 引入 java,从头开始学JanusGraph 0.4
  11. 广域网宽带接入技术二PPPoE原理及配置
  12. outlook2019登录126邮箱(imap)
  13. tp5 上传路径反斜杠的问题 ,反斜杠json_decode函数输出出错的
  14. mysql 1058_mysql启动服务报1058错误的解决方法
  15. nodejs (usb)连接打印机 获取打印状态(escpos-printer和node-escpos)检测USB端口的热插拔
  16. dva学习-入门安装和目录介绍
  17. 如何在程序里写死一张图片(base64编码,OpenCV)
  18. 跟我学ShardingSphere之数据分片策略
  19. 4、keil C51多文件创建小记
  20. 一次性解决office部署问题(即点即用等)

热门文章

  1. 记一次不成功的redis访问
  2. Cisco 2900 series添加VWIC2-1MFT-G703板卡
  3. 基于Cocos2dx开发卡牌游戏Demo_放开那三国 2.0
  4. 简单排序——冒泡排序,选择排序,插入排序,对象排序
  5. SpringBoot配置文件-yaml的用法
  6. Protobuf序列化的原理-protobuf的基本应用
  7. 商品评价 - 实现分页
  8. 在配置类上写@CompentScan注解来进行包扫描
  9. visualSVN仓库创建及操作
  10. shiro认证与授权:基于ini的用户授权