第一句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 關注
- 415 瀏覽
添加回答
舉報
0/150
提交
取消