问题:
  数据库中人表有三个属性,用户(编号,姓名,身高),查询出该身高排名第二的高度。
建表语句

create table users
(id int identity(1,1) primary key,name varchar(20),height float
); 

测试数据

insert into users(name,height) values('zhangsan',182);
insert into users(name,height) values('李四',122);
insert into users(name,height) values('张强',132);
insert into users(name,height) values('王明',122);
insert into users(name,height) values('姜明',182);
insert into users(name,height) values('蒋克龙',182);
insert into users(name,height) values('zhang',182);
insert into users(name,height) values('安安',181);
insert into users(name,height) values('健健',181);
insert into users(name,height) values('明明',181);
insert into users(name,height) values('小小',177);
insert into users(name,height) values('旺旺',123);
insert into users(name,height) values('卡纳',175);
insert into users(name,height) values('文鑫',166);
insert into users(name,height) values('健明',155);
insert into users(name,height) values('拉拉',152);
insert into users(name,height) values('青青',132);
insert into users(name,height) values('乐乐',155);
insert into users(name,height) values('KK',123);
insert into users(name,height) values('FF',122);
insert into users(name,height) values('Lily',152); 

查询语句
1、查询出没有重复值的第二名,即假如最高的身高是182,有几个人同时身高是182,则查出身高小于182的的最高的身高值。
1>、方式1:

select MAX(height) from users where height < (select MAX(height) from users ); 

解析:先查询出最高的身高值,然后查询身高小于该值的最高身高。
2>、方式2:

select top 1 height from users where height not in (select MAX(height) from users) order by height desc; 

解析:先查询出最高的身高,排除该身高,然后将数据进行排序(降序),查询出当前的第一条数据。

3>、方式3:
查询出可能与最高身高值相同的第二名,即假如身高最高是182,有几个人同时是182身高,第二名依然是182.

select top 1 * from  (select top 2 height from users order by height desc) s order by height asc; 

解析:将数据按照身高(降序)排列,查询出前面的两项,然后将这两项按照身高升序,查询第一项目。
http://www.cnblogs.com/0201zcr/p/4820706.html
Oracle版本:

--创建表
declaretableNum number;
beginselect count(1)into tableNumfrom user_tables twhere t.TABLE_NAME = 'USERS';dbms_output.put_line('Table Num:' || tableNum);if (tableNum = 0) thenexecute immediate 'create table USERS(id number(10),name varchar2(20),height number(3),constraint USERS_ID_PK primary key (id))';elsetruncate table USERS;end if;select count(1)into tableNumfrom user_tables twhere t.TABLE_NAME = 'USERS';dbms_output.put_line('Table Num:' || tableNum);--insert into users (id,name, height) values (1,'zhangsan', 182);
end;

这个块中,在创建表结构后,不能直接insert,会报表不存在
输出结果:
要显示dbms_output.put_line的输入内容,需要在command或sqlplus中执行set serverout on;

Table Num:0
Table Num:1
PL/SQL procedure successfully completed

  insert into users (id,name, height) values (1,'zhangsan', 182);insert into users (id,name, height) values (2,'李四', 122);insert into users (id,name, height) values (3,'张强', 132);insert into users (id,name, height) values (4,'王明', 122);insert into users (id,name, height) values (5,'姜明', 182);insert into users (id,name, height) values (6,'蒋克龙', 182);insert into users (id,name, height) values (7,'zhang', 182);insert into users (id,name, height) values (8,'安安', 181);insert into users (id,name, height) values (9,'健健', 181);insert into users (id,name, height) values (10,'明明', 181);insert into users (id,name, height) values (11,'小小', 177);insert into users (id,name, height) values (12,'旺旺', 123);insert into users (id,name, height) values (13,'卡纳', 175);insert into users (id,name, height) values (14,'文鑫', 166);insert into users (id,name, height) values (15,'健明', 155);insert into users (id,name, height) values (16,'拉拉', 152);insert into users (id,name, height) values (17,'青青', 132);insert into users (id,name, height) values (18,'乐乐', 155);insert into users (id,name, height) values (19,'KK', 123);insert into users (id,name, height) values (20,'FF', 122);insert into users (id,name, height) values (21,'Lily', 152);

select max(j.height)from users jwhere j.height < (select max(s.height) from users s)

select g.heightfrom (select j.heightfrom users jwhere j.height not in (select MAX(j.height) from users j)order by j.height desc) gwhere /*rownum < 2*/rownum = 1;

select g.heightfrom (select t.heightfrom (select j.heightfrom users jwhere rownum < 3order by j.height desc) torder by t.height asc) gwhere rownum < 2
/* rownum=1*/
;

sql查询第二大的记录(转)相关推荐

  1. oracle以10个记录为一页查询,SQL查询前10条记录(SqlServermysqloracle)语法分析

    SQL查询前10条记录(SqlServer/mysql/oracle)语法分析 Sql Server : Sql代码 select top X * from table_name --查询前X条记录, ...

  2. SQL查询前10条记录(SqlServer/mysql/oracle)[语法分析]

    Sql Server : Sql代码 select top X * from table_name --查询前X条记录,可以改成需要的数字. select top n * from (select t ...

  3. [SQL]查询及删除重复记录的SQL语句

    一:查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (sel ...

  4. mysql查询第二大的_sql查询最大的见多了,查询第二的呢???

    问题: 数据库中人表有三个属性,用户(编号,姓名,身高),查询出该身高排名第二的高度. 建表语句 create tableusers ( idint identity(1,1) primary key ...

  5. SQL查询实现,记录排序编号

    对数据表的查询实现(股票涨幅SQL查询),数据库记录排序编号,按照顺序计算相邻两行数据的相关属性值: set @count = 0; set @count1 = 0; select b.Date, c ...

  6. Python学习日志16 - 数据库SQL查询

    Python学习日志 RBHGO的主页欢迎关注 温馨提示:创作不易,如有转载,注明出处,感谢配合~ 目录 文章目录 Python学习日志 目录 Python学习日志16课 - 数据库SQL查询 DQL ...

  7. sql查询之分页查询

    文章目录 简介 limit 实例 专栏目录请点击 简介 分页查询我们一般会用到limit 一般分页查询的语法如下 SELECT 查询列表 FROM 表 ... LIMIT (page-1)*size, ...

  8. 记录一次慢SQL优化:大表关联小表->拆解为单表查询

    前言: 最近一段时间总是会收到数据库CPU报警 一查发现有一个特别慢的SQL,调用的频率很高,并且查一次SQL15s以上,十分影响性能 SQL分析 这个sql是一个分页查询的sql,每次查出10条主表 ...

  9. sql查询 关联帖子_MySQL的大分页查询该如何优化?

    点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 转自公众号:yangyidba 一 背景 大部分开发和DBA同行都对分页查询非常非常了解,看帖子翻页需 ...

最新文章

  1. codeforces 几道题目
  2. JWT token信息保存
  3. 2019-1、CentOS7+安装Tengine_2_3_2(Nginx 1_17_0)
  4. mysql中null与“空值”的坑
  5. C++中使用空格的建议
  6. 数学建模PPT(四)
  7. [黑客入门全程图解].吴自容,武新华.等编著.文字版,精确还原
  8. Java中集合retainall_Collection中的之retainAll()方法的理解
  9. android ca,Android CA证书安装流程
  10. 装了xmapp还需要装mysql吗_安装xamp之后,appach、mysql等问题的总结
  11. Java并发相关知识(多线程、锁、容器、工具)
  12. 抓包工具Fiddler下载安装
  13. Web测试需要兼顾的测试要点有哪些?
  14. ZKNUOJ 1019
  15. 跨境电商要讲好年轻人的“新故事”
  16. linux下使用docker-thunder-xware进行离线下载
  17. 弘辽科技:淘宝新手卖家该如何利用千人千面去引爆流量?
  18. 【PM】【需求】项目管理-需求:管理软件需求分析过程
  19. 调频扩频frequency-hopping-spread-spectrum
  20. 图灵奖得主Judea Pearl谈机器学习:不能只靠数据

热门文章

  1. shell下的seq用法
  2. 如何配置sharepoint moss集成RMS
  3. 如何优化计算机网络课程,计算机论文:探究如何优化计算机网络课程教学方法.docx...
  4. 开放平台架构_三步画出产品业务架构图
  5. python pandas库读取excel/csv中指定行或列数据详解
  6. 云原生安全的挑战与实践
  7. 有耐心就能学好Linux
  8. STM32为何能在众多单片机中脱颖而出?
  9. 练习7-11 字符串逆序 (15 分)
  10. CF570D Tree Requests(dsu on tree)