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...