關於SQL中的ROWNUM問題

前言

昨天改小程序的後臺,看見以前寫的分頁很奇怪,startIndexendIndex兩個下標, endIndex 老是在裏面層,而startIndex老是在外層,我隨後改了,直接Where rownum > startIndex and rowmnum <=endIndex, 結果只查出來了第一頁,後面頁查不出來了。數據庫

客官可移步小站查看本文http://fanjiajia.cn/2019/07/10/SQL/flx1/小程序

緣由

Where rownum > 0 and rowmnum <=20,是能夠查出前20條記錄的,可是Where rownum >1 and rowmnum <=20,就不行了,因此只要是rownum>1都不能夠。code

上網查一番,原來ROWNUM做爲一列虛列,也叫作僞列,老是從1開始,我知道這樣說確定以爲是廢話。
舉個例子,where rownum > 1, 結果是查不出數據,緣由很簡單,rownum老是從1開始,能夠這樣理解,查詢過程即爲從數據庫的某一個數據區取值,第一行的rownum爲1,第二行爲2,可是限制條件where rownum > 1致使第一行數據不符合條件,被丟棄,此時取第二行數據,然而此時,rownum仍然從1開始,由於以前哪一行丟棄了,rownum依舊從1開始,所以,永遠取不到數據。get

最後

此致,敬禮class

相關文章
相關標籤/搜索