zoukankan      html  css  js  c++  java
  • TSQL存储过程:ROW_NUMBER()分页

    CREATE PROCEDURE GET_MSGLIST
    @PageIndex int=1,
    @PageSize int=20,
    @OrderField nvarchar(20),
    @IsDesc int=0
    AS
    DECLARE @sql nvarchar(4000),@HighSide int,@LowSide int,@OrderMark nvarchar(5);
    BEGIN
    IF(@IsDesc=1)
    BEGIN
        
    SET @OrderMark='DESC';
    END;
    ELSE
    BEGIN
        
    SET @OrderMark='ASC';
    END;
    IF(@PageIndex=1)
    BEGIN
        
    SET @LowSide=1;
        
    SET @HighSide=@PageSize;
    END;
    ELSE
    BEGIN
        
    SET @LowSide=@PageIndex*@PageSize-@PageSize;
        
    SET @HighSide=@PageIndex*@PageSize;
    END;

    SET @sql='select c.* from (select top '+cast(@HighSide as nvarchar)+
        
    ' ROW_NUMBER() OVER(ORDER BY '+@OrderField+' '+@OrderMark+') AS RowID,ML.*,MT.[Name],MT.Description '+
        
    'FROM MsgList ML INNER JOIN MsgType MT ON ML.TID=MT.ID) c '+
        
    'WHERE RowID BETWEEN '+cast(@LowSide as nvarchar+' AND '+cast(@HighSide as nvarchar);
    PRINT(@sql);
    EXEC(@sql);
    END
  • 相关阅读:
    My first blog!
    Elasticsearch安装 + Head插件安装 + Bigdesk插件安装
    泛型-反射-注解
    JFinal自定义FreeMarker标签
    Hadoop集群中节点角色定义
    HBase
    MapReduce
    HDFS
    Hadoop基本概念
    HTTP浅析
  • 原文地址:https://www.cnblogs.com/lixx/p/1532295.html
Copyright © 2011-2022 走看看