这句select row_number() over (order by ProductID asc) as RowIndex, 不明白

2024-12-29 19:33:21
推荐回答(2个)
回答1:

呵呵~ 老实说,要是不是看了你的提问,我还真不知道有这么个东西呢~

ROW_NUMBER()是一个系统函数,可以生成一组自然编号之类的东西,而OVER只在这里配合使用,表示按ProductID字段升序编号,最后作为 RowIndex 的名称。

总之,查询出来的结果,是一组编号而已。

建议到MSDN上查阅详细的用法~~

回答2:

这个是Oracle中比较常见的用法。
[TEST2@orcl#19-4月 -11] SQL>select * from a;

DTIME RCOUNT
---------- ----------
2011011101 2
2011011101 3

[TEST2@orcl#19-4月 -11] SQL>select row_number()over(order by dtime ) as rowseq,dtime,rcount from a;

ROWSEQ DTIME RCOUNT
---------- ---------- ----------
1 2011011101 3
2 2011011101 2

主要用于查询数据的时候显示序号。
over是Oracle的开窗函数。

over(order by dtime ) 就是按照dtime排序并进行累加。 对什么累加呢?就是前面的row_number()系统函数。

你可以再试试sum(列)over(partition by id order by salary)等 可以求工资的累加和。