oracle中前N條數(shù)據(jù)可用row_number來實現(xiàn)。
成都創(chuàng)新互聯(lián)成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元西夏做網(wǎng)站,已為上家服務(wù),為西夏各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108
如表中數(shù)據(jù):
現(xiàn)在要求按照ID倒序,取出前十位:
oracle中執(zhí)行方法:
select?t.id,t.name?from
(select?test.*,row_number()?over?(order?by?id?desc)?rn?from?test)?t
where?rn=10;
結(jié)果:
用union吧,如:
select * from (
select * from a where a=1 and rownum=10
union
select * from a where a=2 and rownum=10
union
select * from a where a=3 and rownum=10
) a order by b
根據(jù)時間條件排序,取前十條和后十條。
1、有時間字段, 根據(jù)時間條件排序,取前十條和后十條
(1)前十條:
select * from (select * from tab_name a order by date_col )
where rownum11;
(2)后十條:
select * from (select * from tab_name a order by date_col ?desc)
where rownum11;
2、沒有時間字段, 直接根據(jù)物理存儲順序,取前十條和后十條
(1)前十條:
select * from (select * from tab_name a order by rownum)
where rownum11;
(2)后十條:
select * from (select * from tab_name a order by rownuml ?desc)
where rownum11;