• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業
    • 60秒人工響應
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補償
    您的位置: 網站首頁 > 幫助中心>文章內容

    一、檢查硬件

    發布時間:  2012/9/13 17:12:17

    Oracle 分析函數 row_number(),返回一個整數值(>=1);

    語法格式:

    1.row_number() over (order by col_1[,col_2 ...])

    作用:按照col_1[,col_2 ...]排序,返回排序后的結果集,

    此用法有點像rownum,為每一行返回一個不相同的值:

    select rownum,ename,job,   
           row_number() over (order by rownum) row_number   
    from emp;   
        ROWNUM ENAME      JOB       ROW_NUMBER   
    ---------- ---------- --------- ----------   
             1 SMITH      CLERK              1   
             2 ALLEN      SALESMAN           2   
             3 WARD       SALESMAN           3   
             4 JONES      MANAGER            4   
             5 MARTIN     SALESMAN           5   
             6 BLAKE      MANAGER            6   
             7 CLARK      MANAGER            7   
             8 SCOTT      ANALYST            8   
             9 KING       PRESIDENT          9   
            10 TURNER     SALESMAN          10   
            11 ADAMS      CLERK             11   
            12 JAMES      CLERK             12   
            13 FORD       ANALYST           13   
            14 MILLER     CLERK             14 

    如果沒有partition by子句, 結果集將是按照order by 指定的列進行排序;

    with row_number_test as(   
         select 22 a,'twenty two' b from dual union all   
         select 1,'one' from dual union all   
         select 13,'thirteen' from dual union all   
         select 5,'five' from dual union all   
         select 4,'four' from dual)   
    select a,b,   
           row_number() over (order by b)   
    from row_number_test   
    order by a; 

    正如我們所期待的,row_number()返回按照b列排序的結果,

    然后再按照a進行排序,才得到下面的結果:

     A B          ROW_NUMBER()OVER(ORDERBYB)   
    -- ---------- --------------------------   
     1 one                                 3   
     4 four                                2   
     5 five                                1   
    13 thirteen                            4   
    22 twenty two                          5 

    2.row_number() over (partition by col_n[,col_m ...] order by col_1[,col_2 ...])

    作用:先按照col_n[,col_m ...進行分組,

    再在每個分組中按照col_1[,col_2 ...]進行排序(升序),

    最后返回排好序后的結果集:

    with row_number_test as(   
         select 22 a,'twenty two' b,'*' c from dual union all   
         select 1,'one','+' from dual union all   
         select 13,'thirteen','*' from dual union all   
         select 5,'five','+' from dual union all   
         select 4,'four','+' from dual)   
    select a,b,   
           row_number() over (partition by c order by b) row_number   
    from row_number_test   
    order by a; 
     

    這個例子中,我們先按照c列分組,分為2組('*'組,'+'組),

    再按照每個小組的b列進行排序(按字符串首字母的ascii碼排),

    最后按照a列排序,得到下面的結果集:

     A B          ROW_NUMBER   
    -- ---------- ----------   
     1 one                 3   
     4 four                2   
     5 five                1   
    13 thirteen            1   
    22 twenty two          2 
     


    本文出自:億恩科技【www.vbseamall.com】

    服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線