--标准用法:

select * from
(select ROW_NUMBER() OVER (order by id desc )AS RowNumber,* from tUsers) as temp
where RowNumber between 1 and 10

 

--简单实例

with List as (
select ROW_NUMBER() OVER (order by ID desc )AS RowNumber,* from TgJiLu where 1=1
)
select * from List where RowNumber between 1 and 10

【Rownumber存储过程分页】

create proc [dbo].[spSqlPageByRownumber]
@tbName varchar(255),        --表名
@tbFields varchar(1000),      --返回字段
@PageSize int,                --页尺寸
@PageIndex int,                --页码
@strWhere varchar(1000),    --查询条件
@StrOrder varchar(255),  --排序条件
@Total int output            --返回总记录数
as
declare @strSql varchar(5000)    --主语句
declare @strSqlCount nvarchar(500)--查询记录总数主语句
 
--------------总记录数---------------
if @strWhere !=''
begin
set @strSqlCount='Select @TotalCout=count(*) from  ' + @tbName + ' where '+ @strWhere
end
else
begin
set @strSqlCount='Select @TotalCout=count(*) from  ' + @tbName
end
--------------分页------------
if @PageIndex <= 0
begin
  set @PageIndex = 1
end
 
set @strSql='Select * from (Select  row_number() over('+@strOrder+') rowId,'+ @tbFields
+' from ' + @tbName + ' where 1=1 ' + @strWhere+' ) tb where tb.rowId >'+str((@PageIndex-1)*@PageSize)
+' and tb.rowId <= ' +str(@PageIndex*@PageSize)
 
exec sp_executesql @strSqlCount,N'@TotalCout int output',@Total output
exec(@strSql)
View Code

相关文章:

  • 2022-01-01
  • 2021-12-14
  • 2021-11-02
  • 2021-08-04
  • 2021-12-20
  • 2021-09-27
  • 2022-01-24
猜你喜欢
  • 2022-01-27
  • 2022-12-23
  • 2022-01-31
  • 2021-09-01
  • 2021-07-12
  • 2021-11-15
相关资源
相似解决方案