討論區快速選單
知識庫快速選單
政府補助!學嵌入式+物聯網 軟體開發過程中有哪些資安漏洞? 網路投保旅行平安險
[ 回上頁 ] [ 討論區發言規則 ]
sqlServer可以像MySQL一樣取得區間筆數嗎?
更改我的閱讀文章字型大小
作者 : sim0831(翔) 人氣指數超過10000點
[ 貼文 134 | 人氣 18127 | 評價 260 | 評價/貼文 1.94 | 送出評價 11 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/16 下午 03:27:37
像MySQL有一招 LIMIT a,b
可以取得 a 到 b 的筆數,
請問MS SqlServer有類似的方法嗎?
作者 : regionbbs(小朱)技術副站長 VB.Net曠世奇才SQL Server 7/2K卓越專家.Net Framework優秀好手C#曠世奇才ASP.Net一代宗師ADO.Net卓越專家貼文超過6000則人氣指數超過70000點
[ 貼文 6372 | 人氣 82299 | 評價 36440 | 評價/貼文 5.72 | 送出評價 59 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/16 下午 03:29:44
MSSQL 沒有這個指令 , 要用其他的方法 , 像是 Cursor .
作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/16 下午 10:25:41
a,b是指什麼??
類似SELECT COUNT(*) FROM T WHERE F BETWEEN a AND b 嗎?
作者 : sim0831(翔) 人氣指數超過10000點
[ 貼文 134 | 人氣 18127 | 評價 260 | 評價/貼文 1.94 | 送出評價 11 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/17 上午 07:21:47
對不起,沒講清楚,
a是指第幾筆,
b是指從a筆開始計算的筆數。
類似Top 100從第1筆到第100筆。
作者 : mydick(ㄉ一ˊㄎㄜˋ) SQL Language優秀好手貼文超過200則
[ 貼文 223 | 人氣 6296 | 評價 2890 | 評價/貼文 12.96 | 送出評價 34 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人sim0831註記此篇回應為最佳解答 2005/11/17 上午 11:39:49
MS-SQL 並沒有類似的函式或關鍵字可以直接取得某一區間的資料, 但是有一小技巧可以適用於所有資料庫系統, 得到您所需要的結果!

您可以先取的前 N 筆資料, 再由該 N 筆資料中取出後段的 M 筆資料, 那麼最後的 M 筆資料即為您需求的結果!

建議語法如下, 希望能有助於解決您的問題:
Select Top M *
 From (Select Top N * From tblX Order By fldY)
 Order By fldY Desc
作者 : sim0831(翔) 人氣指數超過10000點
[ 貼文 134 | 人氣 18127 | 評價 260 | 評價/貼文 1.94 | 送出評價 11 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/22 上午 10:22:35
謝謝ㄉㄧˊ ㄎㄜˋ!!
此招真是太好用了,無論哪種SQL皆能使用!
作者 : sim0831(翔) 人氣指數超過10000點
[ 貼文 134 | 人氣 18127 | 評價 260 | 評價/貼文 1.94 | 送出評價 11 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/22 上午 10:38:26
抱歉,我高興過早^^
Select Top N * From tblX Order By fldY單獨選取前面N筆資料成功

但是取後段的M筆資料..
Select Top M * From (Select Top N * From tblX Order By fldY) Order By fldY Desc 卻失敗,是語法的問題嗎?

作者 : mydick(ㄉ一ˊㄎㄜˋ) SQL Language優秀好手貼文超過200則
[ 貼文 223 | 人氣 6296 | 評價 2890 | 評價/貼文 12.96 | 送出評價 34 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/22 下午 06:21:01
>Select Top M * From (Select Top N * From tblX Order By fldY) Order By fldY Desc 卻失敗,是語法的問題嗎?

十分抱歉! 小弟疏忽, 沒給Inline view 一個別名, 建議語法更新如下:
Select Top M *
 From (Select Top N * From tblX Order By fldY) tmp
 Order By fldY Desc
作者 : timeternity(timeternity)
[ 貼文 1 | 人氣 1 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/2/16 上午 10:05:11
我自己使用的結果..取出的結果不是我要的
假設有一串數字 1 2 3 4 5 6 7 8 9 10
取 top 5 (12345)中的 top 3 (123)還是 top 3 (123)啊
還是我寫錯了?
即使有 order by desc 也是取出之後再排序,不影響取資料的方向
作者 : longbest(雪龍)
[ 貼文 31 | 人氣 971 | 評價 80 | 評價/貼文 2.58 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/3/12 上午 09:05:21
假設主鍵欄位名稱為 PKF1
資料有 1000 筆, 想取得第 123 ~ 456 的記錄

select * from tbname
where PKF1 in (select top (123 - 456 + 1) *
from (select top 123 PKF1 from tbname
order by PKF1 asc) as a
order by PKF1 desc)
order by PKF1 asc

作者 : chentsungmin(Ben)
[ 貼文 11 | 人氣 1854 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2006/7/4 下午 10:29:09
我有個簡單一點的想法,不知道有沒有bug
我的語法是
假設是要取6~100之間的值
以NorthWind的Products為例
select top 95 * from products where productid not in (select top 5 prodcutid from products)
作者 : flair(flair) 人氣指數超過10000點
[ 貼文 104 | 人氣 13327 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/7/31 上午 01:09:47
沒有想到用這種方法也可以取出X1~~~x2 間的資料...
實在太利砉了
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1602 | 人氣 38709 | 評價 4610 | 評價/貼文 2.88 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/7/31 上午 09:40:45
不好意思 看不太懂
請教一下
既然叫做'TOP' 就是從第一筆開始取
那怎會取出"區間"呢?
除非是用NOT IN之類的去把它刪掉
但效率...
 板主 : 徵求中
 > SQL Server 7/2000 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - SQL Server 7/2000 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
SQL Server 7/2000
1 小朱 1540 
2 小台 1520 
3 Gordon 600 
4 ㄉ一ˊㄎㄜˋ 580 
5 路人 490 
6 max 470 
7 william 410 
8 Aries 250 
9 阿利 180 
10 羅啟章 160 
SQL Server 7/2000
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.09375