Sql Oracle rownum函数

Sql Oracle rownum函数,sql,oracle,rownum,Sql,Oracle,Rownum,如何在oracle中获得rownum而不是按名称排序? i、 在SQL中,我有一个查询 SELECT ROW_NUMBER() OVER(ORDER BY FIRSTNAME) SRL FROM [SECURITY].[USERS] ORDER BY FIRSTNAME 在甲骨文中会是怎样的呢 在Oracle中,ROWNUM是指结果集中应排序的当前记录 SELECT ROW_NUMBER() OVER(ORDER BY FIRSTNAME)SR

如何在oracle中获得rownum而不是按名称排序? i、 在SQL中,我有一个查询

  SELECT 
    ROW_NUMBER() OVER(ORDER BY FIRSTNAME) SRL

  FROM   
    [SECURITY].[USERS]

  ORDER BY 
    FIRSTNAME
在甲骨文中会是怎样的呢

在Oracle中,ROWNUM是指结果集中应排序的当前记录

SELECT ROW_NUMBER() OVER(ORDER BY FIRSTNAME)SRL FROM USERS
SELECT ROWNUM AS SRL
FROM USERS
ORDER BY FIRSTNAME

编辑:这是错误的。ROWNUM是在订购之前分配的。

删除非标准方括号,对于Oracle和许多其他符合标准的DBMSY来说,语法很好,但ROW_NUMBER是另外一回事。这是一个窗口函数。但是,如果不对结果集进行分区,那么窗口函数就没有多大用处,我认为,使用一个分区的窗口函数与只使用ROWNUM非常相似。ROWNUM用于Oracle,我不确定SQL Server的等效值是多少。不正确。ROWNUM是一个伪列,返回的第一行解析为1,下一行解析为2,依此类推-但它是在应用任何排序之前分配的。@Jeffrey Kemp,糟糕!你完全正确。卑鄙的我。正如您所评论的,ROWNUM是在排序之前分配的+1.当然,您可以将查询包装为子查询,然后按rownum排序,例如从select x中选择*,从t中选择rownum r按r排序;是的,分区方式是可选的。