27,579
社区成员
发帖
与我相关
我的任务
分享
select * from (
select ROWNUM RN,a.type,a.objid,a.xm from table1 a
order by type desc
) where RN between 0 and 20
SELECT *
FROM (
SELECT a.*,
rownum rn
FROM (
SELECT a.type,
a.objid,
a.xm
FROM table1 a
ORDER BY
TYPE DESC
) a
) b
WHERE b.rn BETWEEN 1 AND 20;
这样可以保证分页是正常的。
至于分页效率就不好弄了, 你这个 type 只有两种状态, 即使建立一般的索引也没有用, 排序之后很难快起来。
不过, 你可以试一下让 type 作为聚集索引, 看效率能不能提高。
SELECT *
FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY type DESC ) RN ,
a.type ,
a.objid ,
a.xm
FROM table1 a
) t
WHERE RN BETWEEN 0 AND 20;