SQL Server paging query

后端 未结 9 1379
攒了一身酷
攒了一身酷 2021-01-06 16:48

Urggggg! I\'ve been struggling with this for a long time! I can do it with MySQL so easy but not with SQL Server :(

Here are the simplified tables which should be jo

9条回答
  •  醉话见心
    2021-01-06 17:17

    ALTER  Proc [dbo].[Sp_PagingonTable] 
    @SearchText varchar(255) = null,
    @ChannelName varchar(255)= null,
    @ChannelCategory varchar(255)= null,
    @ChannelType varchar(255)= null,
    @PageNo int,
    @PageSize int,
    @TotalPages int output
    As
    DECLARE  @VariableTable TABLE
    (
    Rownumber INT,
    ReferralHierarchyKey BIGINT, 
    ReferralID VARCHAR(255), 
    ChannelDetail VARCHAR(255),     
    ChannelName VARCHAR(255),
    ChannelCategory VARCHAR(255),
    ChannelType VARCHAR(255)
    )
     /*---Inserting Data into variable Table-------------*/
    INSERT INTO @VariableTable
    SELECT   
     ROW_NUMBER() OVER(ORDER BY [ColumnID) as Rownumber,*
     FROM [dbo].[TableName]
     WHERE (@SearchText IS NULL OR ChannelDetail LIKE '%' + @SearchText + '%')                                 And       (@ChannelName  IS NULL OR ChannelName  = @ChannelName )
    /*--Applying Paging on filter Table--*/
    SELECT 
            ReferralID
           ,ChannelDetail
           ,ChannelName
           ,ChannelCategory
           ,ChannelType 
        FROM 
            @VariableTable
    WHERE Rownumber between (((@PageNo -1) *@PageSize)+1) and @PageNo *    @PageSize
     /*--Getting Total Pages After filter Table---*/
     SELECT @TotalPages =  (Count(*) + @PageSize - 1)/@PageSize FROM  @VariableTable
     SELECT @TotalPages
    

提交回复
热议问题