Oracle 取前 n 行資料詳解

2021-09-28 15:23:14 字數 1244 閱讀 7232

2 擴充套件

select t.

*from table_name t

where rownum <= n;

select tt.

*from

(select t.

*from table_name t

order

by t.column_name) tt

where rownum <= n;

with student_info as

(select

1 sno,

'瑤瑤' sname,

'2020-01-01' create_date from dual union

allselect

1 sno,

'倩倩' sname,

'2020-02-01' create_date from dual union

allselect

1 sno,

'優優' sname,

'2020-03-01' create_date from dual union

allselect

1 sno,

'麗麗' sname,

'2020-04-01' create_date from dual union

allselect

1 sno,

'萌萌' sname,

'2020-05-01' create_date from dual

)select tt.sno 學號,

tt.sname 姓名

from

(select si.sno,

si.sname,

row_number(

)over

(partition

by si.sno order

by si.create_date) rn

from student_info si) tt

where tt.rn <=

3;

1. 排序函式 row_number(

) 按 order

by xx desc 可以選擇取前、後 n 行資料

2. 當然也有更高階的應用: '分析函式',如:

(1) 取前一行、後一行

(2) 前 n 行、後 n 行

(3) 對上述進行聚合操作等

mysql取前幾行資料limit用法

在mysql中是沒有top關鍵字的,在mysql中可以用limit來完成功能。order by id desc limit 10 按照id的倒序排序 取出前10條 order by id desc limit 0,10 按照id的倒序排序 取出前10條 order by id limit 5,10 ...

資料庫取前N天資料

oracle資料庫中 首先要區分,時間欄位是日期格式,還是字串 日期格式 trunc sysdate 1 字串格式 to char sysdate 30,yyyy mm dd 選前1天資料 select from 表 where 日期 to date to char sysdate 1,yyyy m...

sql server 分組,取每組的前幾行資料

sql中group by後,獲取每組中的前n行資料,目前我知道的有2種方法 比如有個成績表 裡面有欄位學生id,科目,成績。我現在想取每個科目的頭三名。1.子查詢 select from score s where studentname in select top 3 studentname fr...