选择第二行(如果可用),如果不是第一行,则在

时间:2018-03-02 20:32:17

标签: sql sql-server-2008

我的表格如下所示:

enter image description here

我想选择与InstanceNumber 1的RowNumber 2和其他实例的rownumber 1对应的Operator条目。这是一个例子,其中只有instancenumber 1有两个rownumber,但我想能够选择每个intances的最后一个rownumber。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

一种方法使用窗口函数:

select t.*
from (select t.*, max(rownumber) over (partition by instancenumber) as maxrn
      from t
     ) t
where rownumber = maxrn;

那就是说,如果你有正确的索引,以下可能会更快一点:

select t.*
from t
where t.rownumber = (select max(t2.rownumber) from t t2 where t2.instancenumber = t.instancenumber);