Sql分页查询以及top函数简单实例

Sql分页查询以及top函数简单实例

Sql分页查询以及top函数简单实例
我们做项目时查询表格存在几百上千条数据时经常会需要用到分页,下面就给大家介绍一下在sql中查询分页的简单实例吧。首先我们要知道分页需要什么条件,比如:上一页,下一页,首页,末页,每页需要显示的行数,调到指定的页等,所以在数据库的存储过程就要设置好对应的参数;

1、 先创建一个存储过程设置好对应的参数,然后创建一个视图封装排序好的列表,下面就是一个在数据库进行;

在这我就不在后台代码里传参数了,直接在此处给参数赋值做个例子好了

CREATE PROCEDURE SelectPaging
@first_page int=0,--首页
@end_page int=0,--尾页
@to_page int=0,--跳到指定页,默认我给它赋值为2,
@up_page int=0,--上一页
@next_page int=0 --下一页
@page_row int=5, --每页显示行数,我默认给他显示5行
AS
BEGIN
-----创建视图封装排序好的表格数据-----
create view Vw_StudentList AS 
select row_number() over(order by stuid) number,* from tblStudent
------------------分页查询,根据行数和指定第几页--------------------
--显示3行,我这里写死的,没有用到参数
select top 3* from Vw_StudentList where StuId not in  
--下面的3表示显示三行,4表示页数
(select  top (3*(4-1)) StuId 
from Vw_StudentList)
END
GO

由于需要从别的控制器传参数,所以我的例子就把数据写死了,大家可以参考一下。
显示的结果
在这里插入图片描述

说道分页顺便介绍一下,top函数吧,top函数就是指返回结果的前三行,比如要查询一个班级学生成绩的前五名和倒数的五名就可以轻松实现这个结果了,下面就举个例子吧!
查询语句如下:

--平均分倒数5名同学的平均分
select top 5 st.StuName,avg_sc from tblStudent st join 
(select Avg(S.Score) avg_sc,S.StuId from tblScore S  group by S.StuId) sc on 
sc.StuId=st.StuId order by sc.avg_sc
--平均分排名前五的5名同学的平均分
select top 5 st.StuName,avg_sc from tblStudent st join 
(select Avg(S.Score) avg_sc,S.StuId from tblScore S  group by S.StuId) sc on 
sc.StuId=st.StuId order by sc.avg_sc desc

这就是top的一些简单例子了。
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值