第一句select "tid" from temp5 where rownum=1 and "symbol"=000001 order by "tid" desc得到154是不正确的第二句select "tid" from(select rownum rn,"tid" from(select "tid" from temp5 where "symbol"=000001 order by "tid" desc))where rn=1得到554正确的。为什么?第2种写法速度太慢,是第一种的5倍,能有什么好的办法解决吗?第二种select * from (select "tid" from temp5 where "symbol"=000001 order by "tid" desc )where rownum=1第2种写法速度太慢,是第一种的10倍,能有什么好的办法解决吗?
2 回答
哔哔one
TA贡献1854条经验 获得超8个赞
select "tid" from (select "tid" from temp5 where "symbol"=000001 order by "tid" desc )
where rownum=1;
没办法,ROWNUM就是根据WHERE后面的表来的,肯定先要筛选排次序,除非你开始存的时候就是这个顺序。。
要是你tid建了索引应该很快的啊
湖上湖
TA贡献2003条经验 获得超2个赞
select * from (select "tid" from temp5 where "symbol"=000001 order by "tid" desc )
where rownum=1
只能这么写
- 2 回答
- 0 关注
- 351 浏览
添加回答
举报
0/150
提交
取消