根据另一个列值将增量种子分配给字段

时间:2013-12-14 17:23:34

标签: sql-server tsql sql-server-2012

鉴于:DEMO Here

目标:我正在尝试为枢轴塔的行和列提供排序值。

OneTable
Id,GroupId,TopId,TopSort,SideId,SideSort


View1 of OneTable
Id,GroupId,TopId,TopSort
------------------------
1,1,101,null
2,1,101,null
3,1,102,null
4,1,102,null

View2 of OneTable
Id,GroupId,SideId,SideSort
------------------------
1,1,201,null
3,1,201,null
2,1,202,null
4,1,202,null

如何根据TopId和SideId为TopSort和SideSort分配序列值

例如,按上面的View1。应该如下所示:

View1 of OneTable
Id,GroupId,TopId,TopSort
------------------------
1,1,101,1
2,1,101,1
3,1,102,2
4,1,102,2

1 个答案:

答案 0 :(得分:3)

您可以使用DENSE_RANK()来获得所需的结果,请参阅我的example

SELECT 
  Id,
  GroupId,
  TopId,
  DENSE_RANK() OVER (ORDER BY TopId ASC) 
FROM Tracker 
ORDER BY TopId;