select t.*,ROW_NUMBER() as rowno FROM table t where rowno between 1 and 20 order by id desc

报错:Incorrect syntax near ✀ROW_NUMBER✀, expected ✀OVER✀.求解决方法
2025-04-25 13:30:13
推荐回答(2个)
回答1:

-- 这样才是正确的:
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

回答2:

语法错了,下面这条应该是你想要的,

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