我有一个使用 SQL Server 2008 的表,它有一个表,上面有两个可排序的列,一个是手动设置的,另一个是由系统过程计算的(这个过程将所有内容作为一个整体进行排序,并从 10 开始分配排序,直到最高行数字乘以 10)
ID Manual System
------------------------
1 null 300
2 2 380
3 null 500
4 null 200
我试图让它将 id 排序为 4,2,1,3
我希望输出在应用后对系统进行手动排序。如果添加另一行并且它具有也需要考虑的手动排序,则会使事情进一步复杂化。
ID Manual System
-----------------------
1 null 300
2 2 380
3 null 500
4 null 200
5 5 100
所以新的排序是 4,2,1,3,5
ID Manual System
-----------------------
4 null 200
2 2 380
1 null 300
3 null 200
5 5 100
有任何想法吗?我已经尝试过 Rank、Dense_Rank、Row_Number 等。
对于我的示例,给出的解决方案似乎是正确的。我忘了提到第三列 personID 也是这里的一个因素。
ID Manual System PersonID
-------------------------------------
4 null 200 22
2 2 380 22
1 null 300 22
3 null 200 22
5 5 100 22
8 1 210 25
6 1 480 25
7 null 600 25
9 4 800 25
10 null 990 25
所以我首先必须按人订购,然后按手动订购,然后按分类订购。这似乎仍然给我一个问题。