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

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

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

    yxhxj2006

    常用鏈接

    統(tǒng)計(jì)

    最新評(píng)論

    SQL分頁(yè)語(yǔ)句

    有關(guān)分頁(yè) SQL 的資料很多,有的使用存儲(chǔ)過(guò)程,有的使用游標(biāo)。本人不喜歡使用游標(biāo),我覺(jué)得它耗資、效率低;使用存儲(chǔ)過(guò)程是個(gè)不錯(cuò)的選擇,因?yàn)榇鎯?chǔ)過(guò)程是經(jīng)過(guò)預(yù)編譯的,執(zhí)行效率高,也更靈活。先看看單條 SQL 語(yǔ)句的分頁(yè) SQL 吧。

    方法1:
    適用于 SQL Server 2000/2005
    SELECT TOP 頁(yè)大小 *
    FROM table1
    WHERE id NOT IN
              (
              
    SELECT TOP 頁(yè)大小*(頁(yè)數(shù)排序-1) id FROM table1 ORDER BY id
              )
    ORDER BY id
    原理:其中id最好是主鍵或者索引,這樣查詢速度比較快)。由頁(yè)碼數(shù),通過(guò)sELECT TOP 頁(yè)大小*(頁(yè)數(shù)排序-1) id FROM tablename ORDER BY id 獲取最前面的那幾行(top),然后通過(guò)id not in 表示要查詢的那一頁(yè)是最后的那一部分,而通過(guò)top +頁(yè)大小表示去最后那一部分記錄的最前面的那幾天記錄(每頁(yè)記錄數(shù))。
    為什么直接取最后那一部分的,因?yàn)閟ql只有去前面幾條記錄top,而沒(méi)有去最后幾條記錄的關(guān)鍵字。
    方法2:
    適用于 SQL Server 2000/2005
    --順序?qū)懛ǎ?br /> SELECT TOP 頁(yè)大小 *
     FROM table1
     WHERE id >=
     (
     SELECT ISNULL(MAX(id),0) 
     FROM 
     (
     SELECT TOP 頁(yè)大小*(頁(yè)數(shù)-1)+1 id FROM table1 ORDER BY id
     ) A
     )
     ORDER BY id
     
     --降序?qū)懛ǎ?br /> SELECT TOP 頁(yè)大小 *
     FROM table1
     WHERE id <=
     (
     SELECT ISNULL(MIN(id),0) 
     FROM 
     (
     SELECT TOP 頁(yè)大小*(頁(yè)數(shù)-1)+1 id FROM table1 ORDER BY id Desc
     ) A
     )
     ORDER BY id Desc

    方法3:
    適用于 SQL Server 2005

    SELECT TOP 頁(yè)大小 * 
    FROM 
            (
            
    SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1
            ) A
    WHERE RowNumber > 頁(yè)大小*(頁(yè)數(shù)-1)


    說(shuō)明,頁(yè)大小:每頁(yè)的行數(shù);頁(yè)數(shù):第幾頁(yè)。使用時(shí),請(qǐng)把“頁(yè)大小”和“頁(yè)大小*(頁(yè)數(shù)-1)”替換成數(shù)字。

     

     

     

    其它的方案:如果沒(méi)有主鍵,可以用臨時(shí)表,也可以用方案三做,但是效率會(huì)低。
    建議優(yōu)化的時(shí)候,加上主鍵和索引,查詢效率會(huì)提高。

    通過(guò)SQL 查詢分析器,顯示比較:我的結(jié)論是:
    分頁(yè)方案二:(利用ID大于多少和SELECT TOP分頁(yè))效率最高,需要拼接SQL語(yǔ)句
    分頁(yè)方案一:(利用Not In和SELECT TOP分頁(yè))   效率次之,需要拼接SQL語(yǔ)句
    分頁(yè)方案三:(利用SQL的游標(biāo)存儲(chǔ)過(guò)程分頁(yè))    效率最差,但是最為通用

    posted on 2012-08-29 18:36 奮斗成就男人 閱讀(474) 評(píng)論(0)  編輯  收藏 所屬分類: SQL

    主站蜘蛛池模板: 最近2019免费中文字幕6| 久久国产乱子精品免费女| 免费高清在线影片一区| 亚洲五月综合网色九月色| 免费成人激情视频| 久久久久精品国产亚洲AV无码| 成视频年人黄网站免费视频| 亚洲人成影院在线高清| 毛片a级毛片免费观看免下载| 亚洲va在线va天堂成人| 成人免费在线视频| 男男gay做爽爽免费视频| 亚洲区日韩区无码区| a级毛片免费全部播放| 亚洲AV本道一区二区三区四区| 91成人在线免费视频| 亚洲成a人不卡在线观看| 大地资源二在线观看免费高清| 亚洲熟女www一区二区三区| 国产国产人免费视频成69大陆| 黄页网站在线视频免费| 国产成人A亚洲精V品无码| 国产在线精品免费aaa片| 亚洲精品成人久久| 永久久久免费浮力影院| 九九全国免费视频| 亚洲国产一区二区a毛片| 国产在线国偷精品产拍免费| 日本高清不卡中文字幕免费| 亚洲乱码一区二区三区在线观看| 亚洲一区二区免费视频| 亚洲成aⅴ人片久青草影院按摩| 久久久无码精品亚洲日韩软件| 7x7x7x免费在线观看| 亚洲精品乱码久久久久久蜜桃图片 | 黄瓜视频高清在线看免费下载 | 亚洲成a人片毛片在线| 四虎影院永久免费观看| 一个人免费视频在线观看www | 亚洲国产综合AV在线观看| 久久亚洲2019中文字幕|