SqlServer简单数据分页
手边开发的后端项目一直以来都用的.NET MVC框架,访问数据库使用其自带的EF CodeFirst模式,写存储过程的能力都快退化了 闲来无事,自己写了条分页存储过程,网上类似的文章多的是,这里只列了一种情况,依据分析函数生成行号来实现分页查询
创建数据库过程不再敖述,这里直接进入重点: 1、首先创建了一张TestAdmin表,主键为ID字段int类型且自增 Id (,) Name ( Age )2、接着批量导入1000条模拟数据 ( TestAdmin (Name,Age) ((,), TestAdmin导入完成,开始分页: 大致思路为首先按一定排序规则查询出所有数据,然后为每一行自动生成行号,然后再对生成行号后的表进行where语句筛选处理 3、我们先为主表每行插入一列相同数据生成表V1,目的主要是为了后面的分析函数可以对表进行单行聚合 , SameRow TestAdmin
4、再对表V1进行生成行号处理,利用sqlServer自带分析函数ROW_NUMBER()可实现该功能 ROW_NUMBER() (partition SameRow Id) Row, ( , SameRow TestAdmin)m生成表V2
这时我们已经有一张具有索引行号的表V2,后面的操作就清晰了 5、假设我们需要每页10条数据,且查询第二页 ( ROW_NUMBER() (partition SameRow Id) Row, SameRow TestAdmin)m)o o.Row6、再做一次封装,为它创建一个存储过程,便于我们以后再次调用 , ( ROW_NUMBER() (partition SameRow Id) Row, SameRow TestAdmin)m)o o.Row ()存储过程创建成功! 7、我们来试一下,假设要查询第5页,每页10条 select_page ,后面再对该表进行分页查询时就明显轻松许多^o^ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?留个脚印——2016.12.16 中午(阳光正好) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |