实现上千万条数据的分页显示!
实现上千万条数据的分页显示!
-- 获取指定页的数据
实现上千万条数据的分页显示!
CREATE PROCEDURE GetRecordFromPage
实现上千万条数据的分页显示!    
@tblName      varchar(255),       -- 表名
实现上千万条数据的分页显示!
    @fldName      varchar(255),       -- 字段名
实现上千万条数据的分页显示!
    @PageSize     int = 10,           -- 页尺寸
实现上千万条数据的分页显示!
    @PageIndex    int = 1,            -- 页码
实现上千万条数据的分页显示!
    @IsCount      bit = 0,            -- 返回记录总数, 非 0 值则返回
实现上千万条数据的分页显示!
    @OrderType    bit = 0,            -- 设置排序类型, 非 0 值则降序
实现上千万条数据的分页显示!
    @strWhere     varchar(1000= ''  -- 查询条件 (注意: 不要加 where)
实现上千万条数据的分页显示!
AS
实现上千万条数据的分页显示!
实现上千万条数据的分页显示!
declare @strSQL   varchar(6000)       -- 主语句
实现上千万条数据的分页显示!
declare @strTmp   varchar(100)        -- 临时变量
实现上千万条数据的分页显示!
declare @strOrder varchar(400)        -- 排序类型
实现上千万条数据的分页显示!

实现上千万条数据的分页显示!
if @OrderType != 0
实现上千万条数据的分页显示!
begin
实现上千万条数据的分页显示!    
set @strTmp = "<(select min"
实现上千万条数据的分页显示!    
set @strOrder = " order by [" + @fldName +"] desc"
实现上千万条数据的分页显示!
end
实现上千万条数据的分页显示!
else
实现上千万条数据的分页显示!
begin
实现上千万条数据的分页显示!    
set @strTmp = ">(select max"
实现上千万条数据的分页显示!    
set @strOrder = " order by [" + @fldName +"] asc"
实现上千万条数据的分页显示!
end
实现上千万条数据的分页显示!
实现上千万条数据的分页显示!
set @strSQL = "select top " + str(@PageSize+ " * from ["
实现上千万条数据的分页显示!    + @tblName + "
] where [" + @fldName + "]+ @strTmp + "(["
实现上千万条数据的分页显示!    + @fldName + "
]from (select top " + str((@PageIndex-1)*@PageSize+ " ["
实现上千万条数据的分页显示!    + @fldName + "
] from [" + @tblName + "]+ @strOrder + ") as tblTmp)"
实现上千万条数据的分页显示!    
+ @strOrder
实现上千万条数据的分页显示!
实现上千万条数据的分页显示!
if @strWhere != ''
实现上千万条数据的分页显示!    
set @strSQL = "select top " + str(@PageSize+ " * from ["
实现上千万条数据的分页显示!        + @tblName + "
] where [" + @fldName + "]+ @strTmp + "(["
实现上千万条数据的分页显示!        + @fldName + "
]from (select top " + str((@PageIndex-1)*@PageSize+ " ["
实现上千万条数据的分页显示!        + @fldName + "
] from [" + @tblName + "] where " + @strWhere + " "
实现上千万条数据的分页显示!        
+ @strOrder + ") as tblTmp) and " + @strWhere + " " + @strOrder
实现上千万条数据的分页显示!
实现上千万条数据的分页显示!
if @PageIndex = 1
实现上千万条数据的分页显示!
begin
实现上千万条数据的分页显示!    
set @strTmp = ""
实现上千万条数据的分页显示!    
if @strWhere != ''
实现上千万条数据的分页显示!        
set @strTmp = " where " + @strWhere
实现上千万条数据的分页显示!
实现上千万条数据的分页显示!    
set @strSQL = "select top " + str(@PageSize+ " * from ["
实现上千万条数据的分页显示!        + @tblName + "
]+ @strTmp + " " + @strOrder
实现上千万条数据的分页显示!
end
实现上千万条数据的分页显示!
实现上千万条数据的分页显示!
if @IsCount != 0
实现上千万条数据的分页显示!    
set @strSQL = "select count(*as Total from [" + @tblName + "]"
实现上千万条数据的分页显示!
实现上千万条数据的分页显示!
exec (@strSQL)
实现上千万条数据的分页显示!
实现上千万条数据的分页显示!
GO
实现上千万条数据的分页显示!
实现上千万条数据的分页显示!

相关文章:

  • 2022-01-06
  • 2021-11-06
  • 2022-12-23
  • 2021-06-12
  • 2021-10-17
猜你喜欢
  • 2022-01-31
  • 2021-09-14
  • 2022-12-23
  • 2021-08-18
相关资源
相似解决方案