Pagination query for mssql server 2008 Throwing Incorrect syntax near 'OFFSET'

前端 未结 4 1862
醉话见心
醉话见心 2021-01-15 05:51

I am Working on pagination in jsp(and i am new to writing sql).

I done my research and found simple queries from

pagination in SQL server 2008 and How to d

相关标签:
4条回答
  • 2021-01-15 06:05

    Here is my work around and working fine now.

    SELECT * FROM   (SELECT ROW_NUMBER() OVER(ORDER BY id) AS rownumber,*
            FROM document)  as somex  WHERE  rownumber >= (1+1)*10-9
                             AND rownumber <=(1+1)*10
    

    In the above query i am replacing (1+1) with (pageNUmber+1).

    enter image description here

    Please feel free to suggest me if any elegant way available.

    0 讨论(0)
  • 2021-01-15 06:06
    DECLARE @Page int
    SET @Page = 2
    DECLARE @Amount int
    SET @Amount = 25
    SELECT * FROM (
    SELECT ROW_NUMBER() OVER(ORDER BY group_id) AS rownumber, * FROM table_name 
    WHERE Column LIKE '%Search_Value%') as somex  
    WHERE  rownumber >= (@Page+1)* @Amount-(@Amount - 1) AND rownumber <= (@Page+1) * @Amount
    

    I took it one step further. Added some variables to make inputting the information a little better. At my company we have older databases so this feed helped me a lot.

    0 讨论(0)
  • 2021-01-15 06:10

    I hope this will help (works on SQL Server 2008).

    0 讨论(0)
  • 2021-01-15 06:24

    You will note from ORDER BY Clause (Transact-SQL) this syntax is not supported in SQL Server 2008.

    You can see from the 2008 documentation

    **Syntax**
    
    [ ORDER BY 
        {
        order_by_expression 
      [ COLLATE collation_name ] 
      [ ASC | DESC ] 
        } [ ,...n ] 
    ]
    

    where as the 2012 documentation

    **Syntax**
    ORDER BY order_by_expression
        [ COLLATE collation_name ] 
        [ ASC | DESC ] 
        [ ,...n ] 
    [ <offset_fetch> ]
    
    
    <offset_fetch> ::=
    { 
        OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }
        [
          FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY
        ]
    }
    

    Maybe also have a look at how to do pagination in sql server 2008

    0 讨论(0)
提交回复
热议问题