zoukankan      html  css  js  c++  java
  • Sql Server存储过程排序分页

     1 ALTER PROC [dbo].[p_pagination]
     2 @Sql NVARCHAR(MAX),          --自定义查询sql语句
     3 @SortField NVARCHAR(MAX),    --分页-排序字段
     4 @IsAscending  BIT,           --分页-0正序/1倒序
     5 @PageSize INT,               --分页-每页数量
     6 @PageIndex INT,              --分页-第几页
     7 @TotalRecord INT OUTPUT      --分页-总数
     8 AS
     9 
    10 DECLARE @SqlString NVARCHAR(MAX)
    11 SET @SqlString = 'SELECT @TotalRecord=COUNT(*) FROM ( {{sql}} ) AS T0'
    12 SET @SqlString=REPLACE(@SqlString,'{{sql}}',@Sql)
    13 EXEC sp_executesql @SqlString,N'@TotalRecord INT OUTPUT', @TotalRecord OUTPUT
    14 PRINT '总数:'+ CONVERT(NVARCHAR(MAX), @TotalRecord) 
    15 
    16 SET @SqlString = 'SELECT * FROM ( {{sql}} ) AS T0 ORDER BY {{orderby}}{{isascending}} OFFSET {{offset}} ROWS FETCH NEXT {{pagesize}} ROWS only'
    17 SET @SqlString=REPLACE(@SqlString,'{{sql}}',@Sql)
    18 SET @SqlString=REPLACE(@SqlString,'{{orderby}}',@SortField)
    19 SET @SqlString=REPLACE(@SqlString,'{{isascending}}',CASE WHEN @IsAscending=0 THEN '' ELSE ' DESC' END)
    20 SET @SqlString=REPLACE(@SqlString,'{{offset}}',(@PageIndex-1)*@PageSize)
    21 SET @SqlString=REPLACE(@SqlString,'{{pagesize}}',@PageSize)
    22 EXEC sp_executesql @SqlString
    23 
    24 --调用
    25 --DECLARE @TotalRecord INT
    26 --EXEC [dbo].[p_pagination] 'SELECT * FROM T_User','CreateTime',0,10,1,@TotalRecord OUTPUT
    27 --PRINT @TotalRecord
  • 相关阅读:
    【转】深入分析事务的隔离级别
    gluoncv 用已经训练好的模型参数,检测物体
    gluoncv 目标检测,训练自己的数据集
    SMB linux&windows共享文件
    VOC 数据集
    yaml 配置文件
    SSD 单发多框检测
    目标检测数据集(皮卡丘)
    zip 函数
    输出预测边界框,NMS非极大值抑制
  • 原文地址:https://www.cnblogs.com/oyang168/p/14544730.html
Copyright © 2011-2022 走看看