(轉)各個數據庫版本中,查詢前n條數據的sql語句

(轉)參考博客來源:https://www.cnblogs.com/xkms/p/4664473.html

(僅做記錄只用)

SQL查詢前10條的方法爲:

select top X *  from table_name 

 --查詢前X條記錄,可以改成需要的數字,比如前10條。

select top X *  from table_name order by colum_name desc  

--按colum_name屬性降序排序查詢前X條記錄,“order by” 後緊跟要排序的屬性列名,其中desc表示降序,asc表示升序(默認也是升序方式)。

select top n * from (select top m * from table_name order by column_name ) a order by column_name desc

 --查詢第N到M條記錄。常用的分頁也是這種方式。

MySQL、Sqlite查詢前10條數據的方法:(Sqlite和MySQL查詢語句一樣)

select * from table_name limit 0,10  

  --通常0是可以省略的,直接寫成  limit 10。0代表從第0條記錄後面開始,也就是從第一條開始

select * from table_name limit 5,10 

  --則爲從第5條後面的記錄開始展示,10是偏移量。也就是說從第5條開始,取10條記錄。(即截取數據庫中的第5條之後的10條記錄)

LIMIT子句限定行數的最大值。負的LIMIT表示無上限。後跟可選的OFFSET說明跳過結果集中的前多少行。在一個複合查詢中,LIMIT 子句只允許出現在最終SELECT語句中。限定對於所有的查詢均適用,而不僅僅是添加了LIMIT子句的那一行。注意OFFSET關鍵字用於LIMIT子 句中,則限制值是第一個數字,而偏移量(offset)是第二個數字。若用逗號替代OFFSET關鍵字,則偏移量是第一個數字而限制值是第二個數字。這是 爲了加強對遺留的SQL數據庫的兼容而有意造成的矛盾。 
 

ORACLE查詢前10條的方法:

select * from table_name where rownum<X  

 --X爲前多少條記錄

select * from (select a.*,a.rownum rn from (select * from table_name) a where a.rownum<M) where rn>n   

--這句就是從n到m也的數據,分爲三層結構

Informix查詢前10條記錄的方法:   

select first 10 * from tablename  

 

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