T SQL:Row_Number()不起作用

时间:2017-05-31 22:33:49

标签: tsql sql-server-2012

我的语法如下:

ROW_NUMBER() OVER (PARTITION BY PId, VDate ORDER BY VDate) As RowNum

当我查看结果集时,我看到许多具有相同PId和相同VDate的2行实例 - 当我期待1和2时都有RowNum 1。

我尝试将ORDER BY VDate更改为ORDER BY OtherDateColumn ......没有区别。

问题:

  1. 我的语法有问题吗?
  2. 是否要求我的订单中的日期必须与具有相同PId和VDate的每一行不同?
  3. 数据本身必须满足一些其他基本要求吗?
  4. 谢谢!

1 个答案:

答案 0 :(得分:0)

首先,如果你的查询中有一个JOIN,你可能有一对多的关系,这会给结果带来重复的值。

其次,您要对两个值Pid和Vdate进行分区。此组合是row_number获取其值的唯一值。仅在Pid上进行分区并按Vdate排序也可能有所帮助。