您的位置:軟件測(cè)試 > 開源軟件測(cè)試 > 開源功能測(cè)試工具 > Selenium
在ORACLE中實(shí)現(xiàn)SELECT TOP N的方法
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/3/26 11:44:20 ] 推薦標(biāo)簽:SELECT 功能測(cè)試 ORACLE

4.抽出按某種方式排序的記錄集中的第M條記錄開始的X條記錄

   3里所講得僅僅是抽取一條記錄的情況,當(dāng)我們需要抽取多條記錄的時(shí)候,此時(shí)在2中的N的取值應(yīng)該是在N >= (M + X - 1)這個(gè)范圍內(nèi),當(dāng)讓經(jīng)濟(jì)的取值是取等好的時(shí)候了的時(shí)候了。當(dāng)然后的抽取條件也不是RECNO = N了,應(yīng)該是RECNO BETWEEN M AND (M + X - 1)了,所以隨之而來(lái)的SQL語(yǔ)句則為:

   SELECT列名1...列名nFROM

    (

     SELECT ROWNUM RECNO,列名1...列名nFROM

      (

      SELECT列名1...列名nFROM表名ORDER BY列名1...列名n)

      WHERE ROWNUM <= N(N >= (M + X - 1))

    ORDER BY ROWNUM ASC

      )

     WHERE RECNO BETWEEN M AND (M + X - 1)

   同樣以上面的數(shù)據(jù)為例,則抽取NAME的字母順的第2條記錄開始的3條記錄的SQL語(yǔ)句為:

   SELECT ID, NAME FROM

     (

      SELECT ROWNUM RECNO, ID, NAME FROM

        (SELECT * FROM CUSTOMER ORDER BY NAME)

      WHERE ROWNUM <= (2 + 3 - 1)

      ORDER BY ROWNUM ASC

     )

     WHERE RECNO BETWEEN 2 AND (2 + 3 - 1)

    結(jié)果如下:

   ID NAME

    05 fifth

    01 first

    04 forth

   以此為基礎(chǔ),再擴(kuò)展的話,做成存儲(chǔ)過(guò)程,將開始記錄數(shù)以及抽取記錄數(shù)為參數(shù),可以輕松實(shí)現(xiàn)分頁(yè)抽取數(shù)據(jù)。

  當(dāng)然了,上面所講的都是一些基本的,實(shí)際應(yīng)用中往往都沒有這么簡(jiǎn)單,但是不管怎么說(shuō),不管復(fù)雜的應(yīng)用總是由這些簡(jiǎn)單的元素構(gòu)成,掌握一些基本的方法始終是重要的。

  實(shí)際上網(wǎng)上這樣的文章比較多,我也只是稍微梳理了一下條理而寫的這篇文章。希望能給初學(xué)者一些幫助。

上一頁(yè)123下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd