SQL Server 中有没有一种方法可以根据WHERE
子句中的值对行进行排名?
例如:
SELECT *
FROM Foo
WHERE
Bar1 = true AND
Bar2 = true OR
Bar3 = false
在这种情况下,最好的结果是 Bar1 = true、Bar2 = true 和 Bar3 = false 的行。Bar1 = true、Bar2 = true 和 Bar3 = true 的行得分较低,因为 Bar3 不同。
让它变得更加复杂。WHERE 子句是动态的,我不确切知道查询中会出现哪些列。所以下一个查询可能是:
SELECT *
FROM Foo
WHERE
Bar1 = false OR
Bar3 = true OR
Bar4 = True
如何将排名应用于这些查询?
这可以在查询中完成还是在 C# 中更好?