重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这个是表格排序的问题,需要确定排序情况,才能确定top20会取什么数据。
创新互联建站是一家集成都网站设计、成都做网站、网站页面设计、网站优化SEO优化为一体的专业网站制作公司,已为成都等多地近百家企业提供网站建设服务。追求良好的浏览体验,以探求精品塑造与理念升华,设计最适合用户的网站页面。 合作只是第一步,服务才是根本,我们始终坚持讲诚信,负责任的原则,为您进行细心、贴心、认真的服务,与众多客户在蓬勃发展的市场环境中,互促共生。
先从所有记录里面取前20,
然后把记录降序排序后再取前10
效果就是取第11-20条记录
1、创建测试表,
create table test_order(id number , value varchar2(20));
2、插入测试数据
insert into test_order select 100+level as id, 'value_'||level from dual connect by level=100;
commit;
3、查询表中全量数据,select t.* from test_order t;
4、编写sql,根据ID进行排序,查询第20条数据到30条数据;
select * from (select t.*, row_number() over(order by id) rn from test_order t )
where rn = 20 and rn = 30;
若为oracle数据库,则使用rownom来进行查询
select * from
(
select * from 班级信息
order by 成绩 desc
)
where rownom=20
;
-------推荐答案oracle数据库那个sql语句有问题,查出来的还是表里面前20条数据,只是把这20条数据给降序排列了,而不是最大成绩的前20.
--------------------------------------
若为sqlserver,则为
select top 20 成绩
from 班级信息
order by 成绩 desc
;
-- SQLServer
select top 20 percent * From 用户信息表名称 order by 积分 desc