select * from (select tb.*,row_number() over(order by colname) rk from tb) t where rk<=100;
可以用select * from table_name where rownum<=num order by xxx
select * from table_name where rownum<=100 order by xxx
to: bzszp(SongZip) select * from (select tb.*,row_number() over(order by colname) rk from tb) t where rk<=100; 你这种方法虽然可以得到我想要的结果,可是如果表数据量很大的时候,会严重影响查询速度,请问还有效率比较好的写法吗??
数据量大排序本来就比较慢,bzszp(SongZip) 的语句效率应该是比较高的了
SELECT * FROM (SELECT ROWNUM NUM, LJJC FROM TABLE WHERE LJJC > 0 ORDER BY LJJC DESC) WHERE ROWNUM <= 100 SELECT T.* FROM (SELECT ROWNUM NUM, C.* FROM (SELECT LJJC FROM TABLE WHERE LJJC > 0 ORDER BY LJJC DESC) C) T WHERE T.NUM <= 100
(select tb.*,row_number() over(order by colname) rk from tb) t
where rk<=100;
(select tb.*,row_number() over(order by colname) rk from tb) t
where rk<=100;
你这种方法虽然可以得到我想要的结果,可是如果表数据量很大的时候,会严重影响查询速度,请问还有效率比较好的写法吗??
FROM (SELECT ROWNUM NUM, LJJC
FROM TABLE
WHERE LJJC > 0
ORDER BY LJJC DESC)
WHERE ROWNUM <= 100 SELECT T.*
FROM (SELECT ROWNUM NUM, C.*
FROM (SELECT LJJC
FROM TABLE
WHERE LJJC > 0
ORDER BY LJJC DESC) C) T
WHERE T.NUM <= 100