From the Internet:
First:
Select * from (
Select row_number () over (order by newsid ASC) as rownum, newsid, newstitle, newstext
From t_newstbl
) As a where rownum> = 1 and rownum <= 5
Second:
Select t_newstbl.newsid, t_newstbl.newstitle, t_newstbl.newstext from
(
Select newsid, newstitle, row_number () over (order by newsid ASC) as rowid
From t_newstbl
) As keytable
Inner join t_newstbl on t_newstbl.newsid = keytable. newsid
Where rowid> = 10 and rowid <= 15;
A temporary table keytable is formed in the subquery. the table only retains the identifier in t_newstbl. Because the identifier is generally an index, it is much faster to query,
At this time, the keytable temporary table stores the identifiers of 10th to 15 records, and then joins t_newstbl for an inner query,
Because the ID is an index, this method is much faster than the previous method.