SQL取幾條數據

mysql> SELECT * FROM table LIMIT 5,10;  // 檢索記錄行 6-15

//爲了檢索從某一個偏移量到記錄集的結束所有的記錄行,可以指定第二個參數爲 -1
mysql
> SELECT * FROM table LIMIT 95,-1; // 檢索記錄行 96-last.

//如果只給定一個參數,它表示返回最大的記錄行數目:
mysql
> SELECT * FROM table LIMIT 5;     //檢索前 5 個記錄行

//換句話說,LIMIT n 等價於 LIMIT 0,n。

 

MSSQL實現方式

SELECT * FROM
(
     SELECT TOP [每頁記錄] * FROM
     (
         SELECT TOP [每頁記錄*當前頁數] [字段1, 字段2, ...]
         FROM [數據表]    
         ORDER BY [排序字段] DESC
     )
    [表別名1]
     ORDER BY [排序字段]
)
[表別名2]
ORDER BY [排序字段] DESC

SELECT * FROM
(
    SELECT TOP 5 * FROM
    (
        SELECT TOP 20 *
        FROM t_base_City
        ORDER BY Fid DESC
    ) t1
    ORDER BY Fid asc
) t2
ORDER BY Fid DESC

 

declare @sqlstr nvarchar(4000), --查詢字符串
@pagecount int, --第N頁
@pagesize int --每頁行數

select @pagecount=3,@pagesize=10
,@sqlstr='select * from sysobjects'

set nocount on
declare @P1 int, --P1是遊標的id
@rowcount int

exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
select @rowcount as 總行數,ceiling(1.0*@rowcount/@pagesize) as 頁數,@pagecount as 當前頁
set @pagecount=(@pagecount-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@pagecount,@pagesize
exec sp_cursorclose @P1  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章