MS SQL 两种分页

------ row number ----------

------ row number ----------

declare @pageSize int,@pageIndex int
set @pageSize = 20;set @pageIndex = 2
select * from (
SELECT ROW_NUMBER()  OVER(ORDER BY Byod_ZZFP.ID DESC) as rowID
,Byod_ZZFP.* from Byod_ZZFP  where 1=1
)T
where (rowID > @pageSize * (@pageIndex - 1)  and rowID <=  @pageSize * (@pageIndex)) order by ID desc 

-- CTE表达式 --
declare @pageSize int,@pageIndex int
set @pageSize = 20;set @pageIndex = 2;

with T as
(
  SELECT ROW_NUMBER()  OVER(ORDER BY Byod_ZZFP.ID DESC) as rowID
  ,Byod_ZZFP.* from Byod_ZZFP  where 1=1
)
select * from T
where (rowID > @pageSize * (@pageIndex - 1)  and rowID <=  @pageSize * (@pageIndex)) order by ID desc 

------ max/min ----------

CREATE PROC [dbo].[uspLGetSolutionList]
@pageSize INT, --页码大小
@pageIndex INT, --页码
@strWhere nvarchar(2000)=‘‘,
@totalRecordCount INT OUTPUT --总记录数

AS
DECLARE @strSql NVARCHAR(MAX) --sql语句
DECLARE @sqlcount INT    --返回总记录
DECLARE @strSqlCount NVARCHAR(MAX) --sql语句1,总记录数语句
DECLARE @tempSql NVARCHAR(MAX) --查询字段
DECLARE @temTableOn NVARCHAR(2000) --表连接及表连接关系
DECLARE @order NVARCHAR(500) --排序

SET @tempSql = ‘ NetworkCutover.ID ‘
SET @temTableOn = ‘ NetworkCutover NetworkCutover
inner join Member Member on NetworkCutover.DutyMember = Member.MemberID
 ‘
SET @strSql = ‘ ‘;
SET @order = ‘ ORDER BY NetworkCutover.ID desc ‘
IF(@pageIndex <= 1)
  BEGIN
    SET @strSql = ‘SELECT TOP ‘+STR(@pageSize) + @tempSql +‘ FROM ‘ + @temTableOn + ‘ WHERE 1=1 ‘ + @strWhere + @order;
  END
ELSE
  BEGIN
    SET @strSql = ‘SELECT TOP ‘+STR(@pageSize)+@tempSql +‘ FROM ‘+@temTableOn +‘ WHERE NetworkCutover.ID < (SELECT MIN(T.ID) FROM (SELECT TOP ‘+STR(@pageSize*(@pageIndex-1))+‘ NetworkCutover.ID FROM ‘+@temTableOn+‘ WHERE 1=1 ‘+@strWhere +@order +‘) T)‘+@strWhere+ @order
  END
  print @strSql
  SET @strSqlCount=‘SELECT @sqlcount=COUNT(*) FROM ‘+@temTableOn+‘ WHERE 1=1 ‘+@strWhere
  print @strSqlCount
EXEC SP_EXECUTESQL @strSqlCount,N‘@sqlcount INT OUTPUT‘,@sqlcount OUTPUT
  SET @totalRecordCount=@sqlcount
  EXEC(@strSql)

GO

时间: 2024-12-29 23:41:13

MS SQL 两种分页的相关文章

sql 两种分页offset和row_number简单分析

新建临时表字段id,向临时表里插入1,2,3,4,5,6 if object_id('tempdb..#test') is not null drop table #test create table #test(id int)insert into #test(id)values(1),(2),(3),(4),(5),(6) declare @page int---当前页面declare @rows int---页面大小set @page=2set @rows=3 ---------当前页面为

关于php,mysql,html的数字分页和文本分页的两种分页样式供大家参考

请勿盗版,转载请加上出处http://blog.csdn.net/yanlintao1 请勿盗版,转载请加上出处http://blog.csdn.net/yanlintao1 首先进行样式展示希望对大家有所帮助,也希望大家给出意见和建议: 第一种:数字分页 第二种:为文本分页 php分页函数(我写在下面引入的common.inc.php公共文件中): /* *_page()分页的相关参数 *@param int $_pagesize 每页存有几个好友 *@param $_sql 获取所有字段 *

Hibeernate中的两种分页方式

1. return getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session s) throws HibernateException { Criteria c = s.createCriteria(AskOnline.class); c.add(Restrictions.eq("boardid", new Long(bid))); c.setFirs

django-将数据库数据转换成JSON格式(ORM和SQL两种情况)

最近打算搞一个自动化运维平台,所以在看Django的知识. 在实际项目开发中,遇到一个小问题:前后端发生数据交互主流采用的是JSON.前端传数据到服务器端比较简单,稍微麻烦的是服务器端传JSON到前端. 首先数据是从数据库中获取的,Django默认使用的是ORM技术,但是作为一个运维人员,我其实比较反感这类抽象出来的API.因为尽管它对于开发人员来说,将数据库的表抽象成了一个对象,便于开发,不需要写SQL语句,但是这也是后期程序造成性能瓶颈的罪魁祸首(再做一次故障处理时,遇到一条70几行的SQL

SQL两种简单分页查询方式

以前我们或许都用过了linq的skip and take方式进行分页查询,但是很少自己写sql的分页查询,因为大多数时候,我们都是在调用别人的方法. 最近看到一个文档,感觉方法里面实现的分页查询进入数据库调用的时候,实际最底层调用的还是SQL的分页查询,例如,我们用linq写个分页查询,转成sql表达式后发现: 实际调用的时候,才发现SQL底层是这样进行分页的. 下面,本文主要是介绍两种SQL的分页查询. 一,TOP方式 ----第一种分页查询方式:TOP方式 declare @page int

lucene的两种分页操作

基于lucene的分页有两种: lucene3.5之前分页提供的方式为再查询方式(每次查询全部记录,然后取其中部分记录,这种方式用的最多),lucene官方的解释:由于我们的速度足够快.处理海量数据时,内存容易内存溢出.    lucene3.5以后提供一个searchAfter,这个是在特大数据量采用(亿级数据量),速度相对慢一点,像google搜索图片的时候,点击更多,然后再出来一批.这种方式就是把数据保存在缓存里面.然后再去取. 以下是再查询部分代码: /** * 这就是先查询所有的数据,

bootstrap table两种分页需要的数据不同

先上原帖地址:http://blog.csdn.net/tyrant_800/article/details/50269723 问题描述: 调用$("#show_list_table").bootstrapTable("refresh");刷新table以后,搜索条件可以传入,也请求到了数据,但是就是不在table中展示数据. 最后发现是因为服务器端分页和客户端分页需要的json格式不一样. 原帖内容: 服务器分页/客户端分页的转换,table刷新 bootstra

Sql三种分页方法

--分页三种方法--第一种 ROW_NUMBER() OVER( ORDER BY OrgID) AS indexs 大于pagesize*pageindex,少于等于pagesize*(pageindex+1) --效率最高SELECT * FROM Sys_User AS ALEFT JOIN(SELECT ROW_NUMBER() OVER( ORDER BY OrgID) AS indexs ,ID FROM dbo.Sys_User --效率 次之) AS B ON A.ID = B.

Mybatis-plus的两种分页插件的配置方式

第一种: package com.paic.ocss.gateway.admin.config; import com.baomidou.mybatisplus.plugins.PaginationInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.an