<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 56, comments - 54, trackbacks - 0, articles - 4
       ::  ::  :: 聯(lián)系 :: 聚合  :: 管理

    Oracle提供的序號(hào)函數(shù)

    Posted on 2005-11-12 00:23 Terry的Blog 閱讀(6372) 評(píng)論(0)  編輯  收藏 所屬分類: oracle
    Oracle提供的序號(hào)函數(shù):
    以emp表為例:
    1: rownum 最簡(jiǎn)單的序號(hào) 但是在order by之前就確定值.
    select rownum,t.* from emp t order by ename
      行數(shù) ROWNUM EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
    1 11 7876 ADAMS CLERK 7788 1987-5-23 1100   20
    2 2 7499 ALLEN SALESMAN 7698 1981-2-20 1600 300 30
    3 6 7698 BLAKE MANAGER 7839 1981-5-1 2850   30
    4 7 7782 CLARK MANAGER 7839 1981-6-9 2450   10
    5 13 7902 FORD ANALYST 7566 1981-12-3 3000   20
    6 12 7900 JAMES CLERK 7698 1981-12-3 950   30
    7 4 7566 JONES MANAGER 7839 1981-4-2 2975   20
    8 9 7839 KING PRESIDENT   1981-11-17 5000   10
    9 5 7654 MARTIN SALESMAN 7698 1981-9-28 1250 1400 30
    10 14 7934 MILLER CLERK 7782 1982-1-23 1300   10
    11 8 7788 SCOTT ANALYST 7566 1987-4-19 3000   20
    12 1 7369 SMITH CLERK 7902 1980-12-17 800   20
    13 10 7844 TURNER SALESMAN 7698 1981-9-8 1500 0 30
    14 3 7521 WARD SALESMAN 7698 1981-2-22 1250 500 30

    2: row_number() over( order by 字段名1,字段名2,...字段名n ) 先排序再確定序號(hào).
    select row_number() over( order by ename ) as rm, t.* from emp t
       行數(shù) RM EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
    1 1 7876 ADAMS CLERK 7788 1987-5-23 1100   20
    2 2 7499 ALLEN SALESMAN 7698 1981-2-20 1600 300 30
    3 3 7698 BLAKE MANAGER 7839 1981-5-1 2850   30
    4 4 7782 CLARK MANAGER 7839 1981-6-9 2450   10
    5 5 7902 FORD ANALYST 7566 1981-12-3 3000   20
    6 6 7900 JAMES CLERK 7698 1981-12-3 950   30
    7 7 7566 JONES MANAGER 7839 1981-4-2 2975   20
    8 8 7839 KING PRESIDENT   1981-11-17 5000   10
    9 9 7654 MARTIN SALESMAN 7698 1981-9-28 1250 1400 30
    10 10 7934 MILLER CLERK 7782 1982-1-23 1300   10
    11 11 7788 SCOTT ANALYST 7566 1987-4-19 3000   20
    12 12 7369 SMITH CLERK 7902 1980-12-17 800   20
    13 13 7844 TURNER SALESMAN 7698 1981-9-8 1500 0 30
    14 14 7521 WARD SALESMAN 7698 1981-2-22 1250 500 30


    3: 和上面的不同之處在于PARTITION分區(qū).在每一個(gè)小分區(qū)內(nèi)部取序號(hào).
    select row_number() over(PARTITION BY deptno order by sal ) as rm, t.* from emp t
       行數(shù) RM EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
    1 1 7934 MILLER CLERK 7782 1982-1-23 1300   10
    2 2 7782 CLARK MANAGER 7839 1981-6-9 2450   10
    3 3 7839 KING PRESIDENT   1981-11-17 5000   10
    4 1 7369 SMITH CLERK 7902 1980-12-17 800   20
    5 2 7876 ADAMS CLERK 7788 1987-5-23 1100   20
    6 3 7566 JONES MANAGER 7839 1981-4-2 2975   20
    7 4 7788 SCOTT ANALYST 7566 1987-4-19 3000   20
    8 5 7902 FORD ANALYST 7566 1981-12-3 3000   20
    9 1 7900 JAMES CLERK 7698 1981-12-3 950   30
    10 2 7521 WARD SALESMAN 7698 1981-2-22 1250 500 30
    11 3 7654 MARTIN SALESMAN 7698 1981-9-28 1250 1400 30
    12 4 7844 TURNER SALESMAN 7698 1981-9-8 1500 0 30
    13 5 7499 ALLEN SALESMAN 7698 1981-2-20 1600 300 30
    14 6 7698 BLAKE MANAGER 7839 1981-5-1 2850   30


    4: rank()在這里表示針對(duì)每個(gè)部門員工的工資取序號(hào).
    select rank() over(PARTITION BY deptno order by sal ) as rnk, t.* from emp t;
       行數(shù) RNK EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
    1 1 7934 MILLER CLERK 7782 1982-1-23 1300   10
    2 2 7782 CLARK MANAGER 7839 1981-6-9 2450   10
    3 3 7839 KING PRESIDENT   1981-11-17 5000   10
    4 1 7369 SMITH CLERK 7902 1980-12-17 800   20
    5 2 7876 ADAMS CLERK 7788 1987-5-23 1100   20
    6 3 7566 JONES MANAGER 7839 1981-4-2 2975   20
    7 4 7788 SCOTT ANALYST 7566 1987-4-19 3000   20
    8 4 7902 FORD ANALYST 7566 1981-12-3 3000   20
    9 1 7900 JAMES CLERK 7698 1981-12-3 950   30
    10 2 7521 WARD SALESMAN 7698 1981-2-22 1250 500 30
    11 2 7654 MARTIN SALESMAN 7698 1981-9-28 1250 1400 30
    12 4 7844 TURNER SALESMAN 7698 1981-9-8 1500 0 30
    13 5 7499 ALLEN SALESMAN 7698 1981-2-20 1600 300 30
    14 6 7698 BLAKE MANAGER 7839 1981-5-1 2850   30


    5: 從例子中可以看到dense_rank()和rank()的唯一區(qū)別就是:
    dense_rank()中并列第二名后是第三名.
    rank()中并列第二名后是第四名.
    select dense_rank() over(PARTITION BY deptno order by sal ) as dense_rnk, t.* from emp t;
       行數(shù) DENSE_RNK EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
    1 1 7934 MILLER CLERK 7782 1982-1-23 1300   10
    2 2 7782 CLARK MANAGER 7839 1981-6-9 2450   10
    3 3 7839 KING PRESIDENT   1981-11-17 5000   10
    4 1 7369 SMITH CLERK 7902 1980-12-17 800   20
    5 2 7876 ADAMS CLERK 7788 1987-5-23 1100   20
    6 3 7566 JONES MANAGER 7839 1981-4-2 2975   20
    7 4 7788 SCOTT ANALYST 7566 1987-4-19 3000   20
    8 4 7902 FORD ANALYST 7566 1981-12-3 3000   20
    9 1 7900 JAMES CLERK 7698 1981-12-3 950   30
    10 2 7521 WARD SALESMAN 7698 1981-2-22 1250 500 30
    11 2 7654 MARTIN SALESMAN 7698 1981-9-28 1250 1400 30
    12 3 7844 TURNER SALESMAN 7698 1981-9-8 1500 0 30
    13 4 7499 ALLEN SALESMAN 7698 1981-2-20 1600 300 30
    14 5 7698 BLAKE MANAGER 7839 1981-5-1 2850   30

    主站蜘蛛池模板: 亚洲宅男天堂a在线| 久久青草免费91线频观看站街| 免费毛片在线看片免费丝瓜视频| 亚洲va久久久噜噜噜久久狠狠| 天堂亚洲免费视频| 日日操夜夜操免费视频| 丁香婷婷亚洲六月综合色| 2019中文字幕免费电影在线播放 | 免费看一级毛片在线观看精品视频| 久久受www免费人成_看片中文| 精品无码一区二区三区亚洲桃色 | 久久久久亚洲精品无码网址色欲| aa级一级天堂片免费观看| 337p日本欧洲亚洲大胆艺术| 免费看黄的成人APP| 日日噜噜噜噜夜夜爽亚洲精品| 日本视频免费观看| 一本久久综合亚洲鲁鲁五月天| 亚洲AV色欲色欲WWW| 日韩一区二区免费视频| 亚洲色www永久网站| 毛片免费在线播放| 中文字幕 亚洲 有码 在线| 手机看黄av免费网址| 亚洲国产模特在线播放| 69式互添免费视频| 亚洲第一永久在线观看| 最近高清中文字幕免费| 久久精品国产亚洲77777| 精品久久8x国产免费观看| 亚洲第一页在线播放| 日本亚洲免费无线码| 亚洲成a人片在线观看精品| 9久9久女女免费精品视频在线观看| 亚洲人成电影网站久久| 成人片黄网站色大片免费| 亚洲成a∨人片在无码2023| 国产免费人视频在线观看免费 | 国产一二三四区乱码免费| 国产亚洲一区二区在线观看| 免费视频精品一区二区三区|