• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細頁面

        DB2 UDB 7、ORACLE 8i、SQL SERVER 7數(shù)據(jù)庫中SELECT TOP N 問題 (轉(zhuǎn)發(fā))

        DB2 UDB 7、ORACLE 8i、SQL SERVER 7數(shù)據(jù)庫中SELECT TOP N 問題 (轉(zhuǎn)發(fā))

        更新時間:2022-05-13 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        SELECT TOP N 問題

          本貼討論SELECT TOP N問題.
          現(xiàn)在正在一家計算機公司兼職,開發(fā)ASP應(yīng)用. 在最近的一個商業(yè)項目里有這樣一個需求:用戶在查詢時,只需要按照某(些)列排序后TOP 20的紀(jì)錄. SQL SERVER 7很好地支持了TOP N 操作,但考慮到系統(tǒng)移植問題, 我又考慮在其他幾個主流DBMSs中如何實現(xiàn). 鑒于只有DB2 UDB 7,ORACLE 8i,SQL SERVER 7,本貼僅討論這三個DBMS.
          簡單地說,TOP N問題就是:在SELECT中,僅選擇按照某(些)列排序后TOP N的紀(jì)錄. 考慮到等值問題,又可以分為兩種: 一是僅僅返回N條紀(jì)錄(M 1), 二是還包括所有于第N條等值的紀(jì)錄(M 2). 當(dāng)然最內(nèi)層的子查詢也可以有其他的子句, 或者TOP N也可以應(yīng)用在沒有ORDER BY的情況下,這樣更簡單.

        1. SQL SERVER 7: 用 TOP N (WITH TIES)
        M1:
        SELECT TOP N * FROM MYTABLE ORDER BY ORD_COL;

        M2:
        SELECT TOP N WITH TIES * FROM MYTABLE ORDER BY ORD_COL;
        注: SQL SERVER 7提供了PERCENT N WITH TIES, ACCESS 中提供了TOP N,但含義是M 2.

        2. ORACLE 8i: 用 ROWNUM<=N
        M1:
        SELECT * FROM
           ( SELECT * FROM MYTABLE ORDER BY ORD_COL DESC)
        WHERE ROWNUM<=N
        M2:
        SELECT * FROM MYTABLE WHERE ORD_COL>=
          (SELECT MIN(ORD_COL) FROM
            ( SELECT * FROM MYTABLE ORDER BY ORD_COL DESC)
          WHERE ROWNUM<=N)
        ORDER BY ORD_COL DESC
        注意以下兩種錯誤用法:
        WRONG 1:
        SELECT * FROM MYTABLE
        WHERE ROWID<=N
        ORDER BY ORD_COL DESC;

        WRONG 2:(因為WHERE ROWNUM<=N 在ORDER BY 前執(zhí)行)
        SELECT * FROM MYTABLE
        WHERE ROWNUM<=N
        ORDER BY ORD_COL DESC;

        3: DB2
        用FETCH FIRST N ROWS ONLY
        M1:
        SELECT * FROM MYTABLE
        ORDER BY ORD_COL DESC
        FETCH FIRST N ROWS ONLY
        M2:
        沒有找到,因為DB2不允許在FROM中嵌套有ORDER BY子句的子查詢.

        還不清楚ORACLE的M 2有沒有更好的辦法,以及其他的DBMS如何實現(xiàn)TOP N操作,請其他朋友補充.
        ----------------------------------------------------------------------------------
        各語句已經(jīng)測試過, EXAMPLE:
        create table mytable(mykey int, ord_col int);
        insert into mytable values(1, 100);
        insert into mytable values(2, 100);
        insert into mytable values(3, 99);
        insert into mytable values(4, 101);
        insert into mytable values(5, 101);


        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 国产a级特黄的片子视频免费 | 美女视频黄免费亚洲| 一级毛片无遮挡免费全部| 国内精品免费视频精选在线观看| 国产精品永久免费10000| 亚洲欧洲日韩综合| 98精品全国免费观看视频| 78成人精品电影在线播放日韩精品电影一区亚洲| 丝瓜app免费下载网址进入ios | 亚洲福利在线观看| 1000部啪啪毛片免费看| 国产精品亚洲不卡一区二区三区| 亚洲日韩乱码中文无码蜜桃臀| 国产1024精品视频专区免费| 亚洲综合欧美色五月俺也去| 日韩电影免费在线观看视频| 亚洲经典在线观看| 毛片a级毛片免费观看品善网| 亚洲国产精品美女久久久久| 精品免费久久久久久久| 亚洲色图在线播放| 最近免费字幕中文大全| 亚洲av福利无码无一区二区| 免费影院未满十八勿进网站| 亚洲精品精华液一区二区| 亚洲人成色77777在线观看大| 日韩精品无码免费专区午夜 | sss日本免费完整版在线观看| 毛片a级毛片免费播放100| 久久亚洲色WWW成人欧美| 久久影视国产亚洲| 岛国精品一区免费视频在线观看| 久久亚洲春色中文字幕久久久| 国产午夜免费高清久久影院| 亚洲人成电影网站| 亚洲一区二区三区在线视频| 亚洲黄色片免费看| 又黄又大的激情视频在线观看免费视频社区在线 | 免费看无码特级毛片| 亚洲精品美女网站| 97在线观免费视频观看|