row_number()
ROWNUM在8i
9i中都存在吗?
有何区别
到底用哪一个好些???

解决方案 »

  1.   

    SQL> select rownum from emp;ROWNUM
    ----------
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14已选择14行。已用时间: 00: 00: 00.10
    SQL> select deptno,row_number() over(partition by deptno order by sal) from emp order by deptno;
    DEPTNO ROW_NUMBER()OVER(PARTITIONBYDEPTNOORDERBYSAL)
    ---------- ---------------------------------------------
    10 1
    2
    320 1
    2
    3
    4
    530 1
    2
    3
    4
    5
    6
    已选择14行。
      

  2.   

    row_number()和rownum差不多,功能更强一点(可以在各个分组内从1开时排序),应该是在8之后就有了,但是一些受限版本没有,比如我现在使用的版本就没有row_number的功能
      

  3.   

    row_number在9I开始才有。rownum在8i开始才有。不能直接对rownum只用=,>,row_number可以。rownum可以完成的,row_number基本上都可以。
      

  4.   

    to qiaozhiwei(乔):       DEPTNO ROW_NUMBER()OVER(PARTITIONBYDEPTNOORDERBYSAL)
    中的over()具体用法如何?
      

  5.   

    row_number()和ROWNUM是看起来相似但概念完全不同的东西,
    row_number()是一个分析函数(Analytic Function),它返回的是基于over()参数的行号。
    rownum是oracle特别提供的一个伪列,它只作用于查询的结果集,根据结果集输出的先后次序给每个纪录顺次编号。
      

  6.   

    to KingSunSha(弱水三千) 
    :
    是否用row_number()时就要与over()联和使用呢?有没有详细点的解释?over()社么时候采用?