Rex

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

          關 于 查 詢

          Posted on 2007-11-23 13:02 W.R 閱讀(112) 評論(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 在執行效率上是沒有本質的區別的。

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


          網站導航:
           
          主站蜘蛛池模板: 华安县| 花莲县| 巍山| 玉山县| 南丹县| 吴川市| 兴国县| 德钦县| 东乌| 修武县| 玉林市| 东莞市| 托里县| 台东市| 镇巴县| 宜良县| 安岳县| 竹山县| 建德市| 滦平县| 额敏县| 浦县| 新巴尔虎左旗| 泰安市| 神池县| 太保市| 新龙县| 阳城县| 桂阳县| 探索| 铜鼓县| 文山县| 大洼县| 曲水县| 甘孜| 桐庐县| 淮北市| 定南县| 涡阳县| 新乡县| 蒙自县|