小编use*_*847的帖子

对SQL Server中的两列执行双重排序,主要排序不在前两个列的评估中

我有一个使用SQL Server 2008的表,它有一个带有两个可排序列的表,一个是手动设置的,另一个是通过系统过程计算的(此过程将所有内容整体排序,并从10开始分配排序,直到最高行次数10)

ID    Manual     System
------------------------
1      null      300
2      2         380
3      null      500
4      null      200
Run Code Online (Sandbox Code Playgroud)

我试图让它将id分类为4,2,1,3

我希望输出在应用时对系统进行手动排序.如果添加了另一行并且还需要考虑手动排序,则会使事情进一步复杂化.

ID    Manual     System
-----------------------
1      null      300
2      2         380
3      null      500
4      null      200
5      5         100
Run Code Online (Sandbox Code Playgroud)

所以新的排序将是4,2,1,3,5

ID    Manual     System
-----------------------
4      null      200
2      2         380
1      null      300
3      null      200
5      5         100
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我尝试过Rank,Dense_Rank,Row_Number等.

给出的解决方案似乎对我的例子是正确的.我忘了提到第三列personID也是这里的一个因素.

ID    Manual     System    PersonID
-------------------------------------
4      null      200         22
2      2         380         22
1      null      300         22
3 …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server sql-server-2008

6
推荐指数
1
解决办法
1909
查看次数

标签 统计

sql-server ×1

sql-server-2008 ×1

t-sql ×1