zoukankan      html  css  js  c++  java
  • SqlServer 分页查询语句存储过程

    CREATE PROCEDURE  [dbo].[Proc_SqlPageByRownumber]
    (
        @tbName VARCHAR(2000),            --表名
        @tbGetFields VARCHAR(1000)= '*',--返回字段
        @OrderfldName VARCHAR(255),        --排序的字段名
        @PageSize INT=20,               --页尺寸
        @PageIndex INT=1,               --页码
        @OrderType bit = 0,                --0升序,非0降序
        @strWhere VARCHAR(1000)='',     --查询条件
        @TotalCount INT OUTPUT            --返回总记录数
    )
    AS
    BEGIN
        DECLARE @strSql VARCHAR(5000)    --主语句
        DECLARE @strSqlCount NVARCHAR(4000)--查询记录总数主语句
        DECLARE @strOrder VARCHAR(300) -- 排序类型
    
        --------------总记录数---------------
        IF ISNULL(@strWhere,'') <>'' 
             SET @strSqlCount='Select @TotalCout=count(*) from  ' + @tbName + ' where 1=1 '+ @strWhere
        ELSE SET @strSqlCount='Select @TotalCout=count(*) from  ' + @tbName
        print 1
        exec sp_executesql @strSqlCount,N'@TotalCout int output',@TotalCount output
        --------------分页------------
        IF @PageIndex <= 0 SET @PageIndex = 1
    print 2
        IF(@OrderType<>0) SET @strOrder=' ORDER BY '+@OrderfldName+' DESC '
        ELSE SET @strOrder=' ORDER BY '+@OrderfldName+' ASC '
    print 3
        SET @strSql='SELECT *,'+CONVERT(nvarchar(10),@TotalCount)+' as TotalCount '+' FROM 
        (SELECT ROW_NUMBER() OVER('+@strOrder+') RowNo,'+ @tbGetFields+' FROM ' + @tbName + ' WHERE 1=1 ' + @strWhere+' ) tb 
        WHERE tb.RowNo BETWEEN '+str((@PageIndex-1)*@PageSize+1)+' AND ' +str(@PageIndex*@PageSize)
        print @strSql
        exec(@strSql)
    END
    
    GO
  • 相关阅读:
    poj 3436 ACM Computer Factory 夜
    poj 1182 食物链 夜
    poj 2299 UltraQuickSort 夜
    E. Printer 夜
    poj 3083 Children of the Candy Corn 夜
    sdut 2500 0\'s 夜
    1776. Anniversary Firework sdut 2507 焰火表演 夜
    删除上传文件中可能包含的空行
    ALV的fieldcat属性
    ALV显示红绿灯(FM&nbsp;ALV&nbsp;和&nbsp;OO&nbsp;ALV两…
  • 原文地址:https://www.cnblogs.com/zldqpm/p/11911964.html
Copyright © 2011-2022 走看看