Rex

          ——生命不止,奮斗不息。
          posts - 27, comments - 8, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          關 于 查 詢

          Posted on 2007-11-23 13:02 W.R 閱讀(111) 評論(0)  編輯  收藏
          1.查詢從第N條到第M條:
                 在MSSQL中  可以用  方式1:
          SELECT TOP m-n+1 * FROM TableA 
            
          WHERE (id NOT IN 
              (
          SELECT TOP n-1 id FROM   TableA)) 
          id 為TableA表的關鍵字
                  也可用方式2:在存儲過程中新建一張臨時表 取查詢表的主鍵做字段
          CREATE procedure pagination1
          (
          @pagesize int,  --頁面大小,如每頁存儲20條記錄
          @pageindex int   --當前頁碼
          )
          as
          set nocount on
          begin
          declare @indextable table(id int identity(1,1),nid int)  --定義表變量
          declare @PageLowerBound int  --定義此頁的底碼
          declare @PageUpperBound int  --定義此頁的頂碼
          set @PageLowerBound=(@pageindex-1)*@pagesize
          set @PageUpperBound=@PageLowerBound+@pagesize
          set rowcount @PageUpperBound
          insert into @indextable(nid) select gid from TGongwen where fariqi >dateadd(day,-365,getdate()) order by fariqi desc
          select O.gid,O.mid,O.title,O.fadanwei,O.fariqi from TGongwen O,@indextable t where O.gid=t.nid
          and t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.id
          end
          set nocount off


          借助臨時表來達到你的目的。
          個人推薦第1種方式。

          另外  not in 與 not exists 在執行效率上是沒有本質的區別的。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 大邑县| 衡阳县| 延安市| 武宁县| 深泽县| 万州区| 老河口市| 敖汉旗| 九龙县| 肥乡县| 深泽县| 忻州市| 河北区| 昌平区| 环江| 木里| 井研县| 清镇市| 仪陇县| 新乡县| 长泰县| 西青区| 师宗县| 九江市| 嘉义县| 平度市| 阿克| 鹤壁市| 宜川县| 肥东县| 曲松县| 凌海市| 随州市| 定西市| 昔阳县| 上犹县| 九江市| 揭东县| 衡阳县| 崇仁县| 罗山县|