select the TOP N rows from a table

后端 未结 5 1710
谎友^
谎友^ 2020-12-13 06:35

I am making some paging, and I need to make some query and get the result form defined slicing . for example: I need to get all \"top\" rows in range 20n < x < 40n et

相关标签:
5条回答
  • 2020-12-13 06:51

    you can also check this link

    SELECT * FROM master_question WHERE 1 ORDER BY question_id ASC LIMIT 20

    for more detail click here

    0 讨论(0)
  • 2020-12-13 07:00

    From SQL Server 2012 you can use a native pagination in order to have semplicity and best performance:

    https://docs.microsoft.com/en-us/sql/t-sql/queries/select-order-by-clause-transact-sql?view=sql-server-ver15#using-offset-and-fetch-to-limit-the-rows-returned

    Your query become:

    SELECT * FROM Reflow  
    WHERE ReflowProcessID = somenumber
    ORDER BY ID DESC;
    OFFSET 20 ROWS  
    FETCH NEXT 20 ROWS ONLY;  
    
    0 讨论(0)
  • 2020-12-13 07:01
    select * from table_name LIMIT 100
    

    remember this only works with MYSQL

    0 讨论(0)
  • 2020-12-13 07:04

    Assuming your page size is 20 record, and you wanna get page number 2, here is how you would do it:

    SQL Server, Oracle:

    SELECT *   -- <-- pick any columns here from your table, if you wanna exclude the RowNumber
    FROM (SELECT ROW_NUMBER OVER(ORDER BY ID DESC) RowNumber, * 
          FROM Reflow  
          WHERE ReflowProcessID = somenumber) t
    WHERE RowNumber >= 20 AND RowNumber <= 40    
    

    MySQL:

    SELECT * 
    FROM Reflow  
    WHERE ReflowProcessID = somenumber
    ORDER BY ID DESC
    LIMIT 20 OFFSET 20
    
    0 讨论(0)
  • 2020-12-13 07:14

    In MySql, you can get 10 rows starting from row 20 using:

    SELECT * FROM Reflow  
    WHERE ReflowProcessID = somenumber
    ORDER BY ID DESC
    LIMIT 10 OFFSET 20 --Equivalent to LIMIT 20, 10
    
    0 讨论(0)
提交回复
热议问题