<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

    主站蜘蛛池模板: 2022久久国产精品免费热麻豆| av网站免费线看| 四虎精品视频在线永久免费观看 | 国产无遮挡裸体免费视频| 中文字幕亚洲精品无码| 18禁成年无码免费网站无遮挡| 亚洲国产91在线| 在线a毛片免费视频观看| 亚洲最大的成人网| 四虎永久成人免费| h片在线播放免费高清| 亚洲乱码精品久久久久..| 久久免费公开视频| 亚洲国产精品线观看不卡| 在线观看视频免费国语| 国产亚洲情侣久久精品| 国产精品亚洲不卡一区二区三区| 久久免费观看视频| 亚洲人成电影在线天堂| 两个人的视频高清在线观看免费| 亚洲成a人片在线观看天堂无码 | 无码免费午夜福利片在线| 亚洲欧洲av综合色无码| 亚洲国产精品一区二区第四页| 中文字幕一区二区免费| 亚洲春色另类小说| 国产女高清在线看免费观看| a毛片成人免费全部播放| 亚洲欧洲视频在线观看| 日本媚薬痉挛在线观看免费| 国产免费黄色无码视频| 亚洲精品福利网站| 午夜亚洲av永久无码精品 | 男女一边摸一边做爽的免费视频| 亚洲精品~无码抽插| 国产成人免费爽爽爽视频| 一级毛片正片免费视频手机看| 亚洲精品自产拍在线观看动漫| 日本视频免费在线| 1000部免费啪啪十八未年禁止观看 | 天天摸天天碰成人免费视频|