-- 这样才是正确的:
WITH CTE AS(SELECT ROW_NUMBER() OVER(ORDER BY id desc) AS rowno,t.* FROM table AS t )SELECT * FROM CTE WHERE rowno BETWEEN 1 AND 20
语法错了,下面这条应该是你想要的,
select * from (select t.*,ROW_NUMBER() over ( order by id ) as rowno FROM table t ) o where o.rowno between 1 and 20 order by id desc