WITH A AS (SELECT 1 M,'開1' N FROM DUAL
UNION
SELECT 101 M,'開2' N FROM DUAL
UNION
SELECT 10101 M,'開3' N FROM DUAL
)
SELECT A.M,
A.N,
ROW_NUMBER () OVER(PARTITION BY 1 ORDER BY A.M) AS SEQ
FROM A請問哈各位大俠,這里的PARTITION BY 1是什么意思啊?
郁悶中.............

解决方案 »

  1.   

    推荐expert one on one oracle: Chapter 12: Analytic Functions
      

  2.   

    ROW_NUMBER   ()   OVER(PARTITION   BY   1   ORDER   BY   A.M)   AS   SEQ 发错了板块了,这应该是 SQL Server 2005 新加的 TSQL 指令。应该发到 ms sqlserver 版。
      

  3.   

    sql 2005 TSQL 的 row_number 函数相当于的 oracle PL/SQL 的 rownum 伪列,不过功能更强。partition by 的作用就是按某一列的值分区产生行号,像rownum    charcolumn
    1          A
    2          A
    3          A
    1          B
    2          B如果没有 partition by,则整表一起排序
      

  4.   

    oracle好像也有这种用法吧!分析函数.