• <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)下載排行

        主站蜘蛛池模板: 99在线视频免费观看| 羞羞漫画在线成人漫画阅读免费| 一区二区在线免费视频| 一本色道久久88综合亚洲精品高清| 亚洲av永久无码精品秋霞电影秋| 欧美a级成人网站免费| 亚洲中文字幕久久精品蜜桃| 毛片a级毛片免费观看免下载| 亚洲日韩精品无码专区加勒比☆ | 巨胸狂喷奶水视频www网站免费| 亚洲国产精品成人| 男女猛烈无遮掩视频免费软件 | 亚洲国产成人精品电影| 丁香花免费高清视频完整版| 亚洲中文字幕日本无线码| 日本一区免费电影| 日韩精品无码永久免费网站| 亚洲五月综合缴情在线观看| 四虎国产成人永久精品免费| 亚洲av产在线精品亚洲第一站| 狼友av永久网站免费观看| 香蕉视频免费在线| 久久伊人久久亚洲综合| 在免费jizzjizz在线播| 亚洲精品动漫免费二区| 国产av无码专区亚洲国产精品| 日本免费电影一区二区| 亚洲综合精品第一页| 亚洲乱码日产精品a级毛片久久| a毛片在线免费观看| 亚洲人成在线免费观看| 国产18禁黄网站免费观看| 最近中文字幕大全免费版在线| 亚洲成a人不卡在线观看| 国产免费观看青青草原网站| 东北美女野外bbwbbw免费| 激情亚洲一区国产精品| 亚洲精品无码你懂的网站| 欧洲一级毛片免费| 人体大胆做受免费视频| 亚洲人成影院在线高清|