<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    取最新的幾條記錄(及rownum的解釋)

    Posted on 2007-07-15 03:12 leekiang 閱讀(519) 評論(0)  編輯  收藏 所屬分類: oracle
    select rownum,c1 from t1 where rownum > 10沒有記錄,

    因為第一條不滿足去掉的話,第二條的ROWNUM又成了1,所以永遠沒有滿足條件的記錄。或者可以這樣理解:

    ROWNUM是一個序列,是oracle數(shù)據(jù)庫從數(shù)據(jù)文件或緩沖區(qū)中讀取數(shù)據(jù)的順序。它取得第一條記錄則rownum值為1,第二條為2,依次類推。如果你用>,>=,=,between...and這些條件,因為從緩沖區(qū)或數(shù)據(jù)文件中得到的第一條記錄的rownum為1,則被刪除,接著取下條,可是它的rownum還是1,又被刪除,依次類推,便沒有了數(shù)據(jù)。

    select rownum,c1 from t1 where rownum != 10 為何是返回前9條數(shù)據(jù)呢?
    為什么 rownum >1 時查不到一條記錄,而 rownum >0 或 rownum >=1 卻總顯示所以的記錄
    任何時候想把 rownum = 1 這條記錄拋棄是不對的,它在結果集中是不可或缺的,少了rownum=1 就像空中樓閣一般不能存在,所以你的 rownum 條件要包含到 1

    但如果就是想要用 rownum > 10 這種條件的話話就要用嵌套語句,把 rownum 先生成,然后對他進行查詢。
    select *
    from (selet rownum as rn,t1.* from a where ...)
    where rn >10

    一般代碼中對結果集進行分頁就是這么干的。

    另外:rowid 與 rownum 雖都被稱為偽列,但它們的存在方式是不一樣的,rowid 可以說是物理存在的,表示記錄在表空間中的唯一位置ID,在DB中唯一。只要記錄沒被搬動過,rowid是不變的。rowid 相對于表來說又像表中的一般列,所以以 rowid 為條件就不會有 rownum那些情況發(fā)生。

    詳見http://hi.baidu.com/jztchina/blog/item/4cca34971258fe6954fb96d6.html

    Oracle在檢索的時候,會首先把數(shù)據(jù)都檢索出來,然后在排序段中進行排序。假如你有一個SQL語句如下所示
    SELECT
    ????????EMP_NO
    FROM
    ????????EMP
    WHERE
    ????????ROWNUM?
    <?10
    ORDER?BY
    ????????EMP_NO

    ????????在檢索的時候,會首先把數(shù)據(jù)檢索出來,也就是把EMP表數(shù)據(jù)都檢索出來,然后再Order by排序操作。因為ROWNUM?數(shù)據(jù)是在排序前就檢索出來的了,所以不能利用ROWNUM來取得排序后的前10條操作。那么應該如何操作呢。其實很簡單,利用子查詢,先排序,再取ROWNUM。如下所示

    SELECT
    ????????EMP_NO
    FROM
    ????????(
    ????????
    SELECT?
    ????????????????EMP_NO
    ????????
    FROM
    ????????????????EMP
    ????????
    ORDER?BY
    ????????????????EMP_NO
    ????????)
    WHERE
    ????????ROWNUM?
    <?10
    主站蜘蛛池模板: 日韩一级免费视频| 亚洲乱码在线卡一卡二卡新区| 成人国产mv免费视频| 你懂的免费在线观看网站| 深夜a级毛片免费视频| 色噜噜亚洲男人的天堂| 精品日韩亚洲AV无码一区二区三区 | 亚洲一卡2卡3卡4卡国产网站| 亚洲人精品午夜射精日韩 | 黄色毛片免费在线观看| 亚洲精品第一综合99久久| 亚洲综合激情另类小说区| 亚洲精品乱码久久久久久按摩| 无码不卡亚洲成?人片| 午夜视频免费观看| 免费电视剧在线观看| 日本三级2019在线观看免费| 99久久精品免费精品国产| 叮咚影视在线观看免费完整版| 一个人看的www视频免费在线观看 一个人看的免费观看日本视频www | 国产无遮挡无码视频免费软件| 美女视频免费看一区二区| 亚洲av无码日韩av无码网站冲 | 人与禽交免费网站视频| 99爱免费观看视频在线| a级黄色毛片免费播放视频| 美女巨胸喷奶水视频www免费| 暖暖免费中文在线日本| 边摸边吃奶边做爽免费视频99| 天天综合亚洲色在线精品| 狼人大香伊蕉国产WWW亚洲| 久久亚洲中文无码咪咪爱| 午夜亚洲WWW湿好爽| 国产综合成人亚洲区| 污视频网站免费观看| 亚洲天堂免费在线视频| 久久久久久久国产免费看 | 亚洲日韩中文在线精品第一| 亚洲精品无码久久久久AV麻豆| 亚洲精品国自产拍在线观看| 久久精品国产亚洲精品|