獲取前10條和第10到20條資料sql

2021-09-19 23:01:45 字數 2272 閱讀 8841

oracle:

rownum是把sql出來的結果進行編號,始終從1開始,常見的用途就是用來分頁輸出。

select * from ts_user where rownum < 11;

select * from (select * from ts_user order by id desc ) where rownum<=10;

把rownum轉成例項,因為rownum本身只能用<=的比較方式,只有轉成實列,這樣就可做 >=的比較了。

select *  from 

(select a.*, rownum rn from ts_user a)

where rn >= 10 and rn <= 20

row_number() over()

over裡頭的分組及排序的執行晚於「where,group by,order by」的執行。

select *  from (

select account,user_name,**row_number() over( order by create_time) rs** from ts_user

)where rs <11

select * from (

select gender,user_name,create_time,**row_number() over(partition by gender order by create_time) rs** from ts_user

)where rs >= 10 and rs <= 20

mysql:

索引從0開始,

select * from ts_dict_entry order by id desc limit 0,10
等同於

select * from ts_dict_entry order by id desc limit 10
從10開始,取11條

select * from ts_dict_entry order by id desc limit 9,11
分組後排序

select * from ts_dict_entry a 

where 2>(select count(*) from ts_dict_entry where type_id=a.type_id and sort_nosqlserver:

select top 10 * from ts_user order by id desc

子查詢結果要取別名

select *  from (

select account,user_name,row_number() over( order by create_time) rs from ts_user

) t where t.rs <11

子查詢結果要取別名

select *  from (

select gender,user_name,create_time,row_number() over(partition by gender order by create_time) rs from ts_user

)t where rs >= 10 and rs <= 20

select * from (

select account,user_name,row_number() over( order by create_time) rs from ts_user

) t where rs between 10 and 20

postgresql:

從第3條開始,取10條

select * from ts_dict_entry order by id desc limit 10 offset 2
分組查詢,與mysql一致

select * from ts_dict_entry a 

where 2>(select count(*) from ts_dict_entry where type_id=a.type_id and sort_noorder by a.type_id;

sql取前20條資料的後10條資料(通用)

sql在沒有id主鍵或單一主鍵 即組合主鍵或沒有主鍵的情況 如何取前20條資料的後10條資料,一般通用的方法仍是用臨時表,效率一般,但比較通用,在各種情況下均可用此方法.由此也可衍生出sql的分頁儲存過程,尤其適合經常對不同表的資料進行分頁,格外適用.當然,方法並非這一種,具體視不同情況設計最優的s...

查詢表中第10條至20條的記錄

canby 22 49 51 select top 10 from tables where id select max id from select top 9 id from tables order by id as a order by id canby 22 50 34 有錯漏的改一下,大...

查詢資料庫中的第10到20條記錄

先給出一條錯誤的方法 select from table where rownum 20 and rownum 10 這種方式是不正確的 rownum是偽列只能用 不能用 between.and.這裡的不能用,不是指使用了會產生語法錯誤,而是查詢後不能返回結果,或者返回的結果不知所云 1.selec...