zoukankan      html  css  js  c++  java
  • 一个高效的数据分页的存储过程 可以轻松应付百万数据

    CREATE PROCEDURE pageTest  --用于翻页的测试
    --
    需要把排序字段放在第一列

     (
      
    @FirstID nvarchar(20)=null,  --当前页面里的第一条记录的排序字段的值
      @LastID nvarchar(20)=null,  --当前页面里的最后一条记录的排序字段的值
      @isNext bit=null,    --true 1 :下一页;false 0:上一页
      @allCount int output,   --返回总记录数
      @pageSize int output,   --返回一页的记录数
      @CurPage int     --页号(第几页)0:第一页;-1最后一页。
      )

    AS

    if @CurPage=0
     
    begin
      
    --统计总记录数
      select @allCount=count(ProductId) from Product_test 
       
      
    set @pageSize=10
      
    --返回第一页的数据
      select top 10 
       ProductId,
       ProductName,
       Introduction   
       
    from Product_test order by ProductId 
     
    end

    else if @CurPage=-1

     
    select * from 
      (
    select top 10 ProductId,
       ProductName,
       Introduction

      
    from Product_test order by ProductId desc ) as aa  
      
    order by ProductId
    else

     
    begin 
      
    if @isNext=1
       
    --翻到下一页
       select top 10 ProductId,
       ProductName,
       Introduction
      
    from Product_test where ProductId > @LastID order by ProductId 
       
       
      
    else
       
    --翻到上一页
       select * from
        (
    select top 10 ProductId,
       ProductName,
       Introduction
      
    from Product_test where ProductId < @FirstID  order by ProductId descas bb order by ProductId
     
    end

  • 相关阅读:
    堆排序算法
    二叉树的创建、遍历(递归和非递归实现)、交换左右子数、求高度(c++实现)
    hdoj1010 奇偶剪枝+DFS
    常见排序算法c++总结
    B
    C
    D
    E
    G
    F
  • 原文地址:https://www.cnblogs.com/zzh/p/314035.html
Copyright © 2011-2022 走看看