環(huán)境:windows 2000 server + Oracle8.1.7 + sql*plus 目的:以oracle自帶的scott模式為測試環(huán)境,主要通過試驗體會分析函數(shù)的用法。 1.row_number() 的使用 原表信息:SQL> break on deptno skip 1 -- 為效果更明顯,把不同部門的數(shù)據(jù)隔段顯示。 SQL> select deptno,ename,sal 2 from emp 3 order by deptno,sal desc; DEPTNO ENAME SAL ---------- ---------- ---------- 10 KING 5000 CLARK 2450 MILLER 1300 20 SCOTT 3000 FORD 3000 JONES 2975 ADAMS 1100 SMITH 800 30 BLAKE 2850 ALLEN 1600 TURNER 1500 WARD 1250 MARTIN 1250 JAMES 950 已選擇14行。 使用row_number()查出各部門薪水最高的三個員工姓名、薪水,多于三個的只取三個。SQL> select * from ( 2 select deptno,row_number() over(partition by deptno order by sal desc) rw,ename,sal 3 from emp 4 ) 5 where rw<=3; DEPTNO RW ENAME SAL ---------- ---------- ---------- ---------- 10 1 KING 5000 2 CLARK 2450 3 MILLER 1300 20 1 SCOTT 3000 2 FORD 3000 3 JONES 2975 30 1 BLAKE 2850 2 ALLEN 1600 3 TURNER 1500 已選擇9行。體會:row_number() 返回的主要是“行”的信息,并沒有按照sal排名,如 20 1 SCOTT 3000 2 FORD 3000 scott與ford薪水一樣多,ford前面的2僅僅是行數(shù)、記錄條數(shù)的感念。