如何在数据库中制作和更新排名 C#

How to make and update ranking in database c#

我有这个查询:

Select [col], DENSE_RANK() Over(ORDER BY col DESC)as rank From Table

我有 2 列,x 和 y。 但我想用 DENSE_RANK() 的结果更新 x 列中的数据。老实说,我不知道那是怎么查询的,但是当我尝试时,它是有效的。

但是当我在查询生成器中尝试该查询时,会出现警告 "The OVER SQL construct or statement is not supported."。所以我需要对x列的数据进行排名,然后将排名结果保存到y列。

您可以执行如下操作。这里的 ba 是 table 的别名。您需要加入相同的 table -> 获取排名数据 -> 然后更新所需的列

UPDATE a 
SET y = b.rank
FROM Table a
JOIN (
Select x, DENSE_RANK() OVER(ORDER BY x DESC)as rank From Table ) b
ON a.x = b.x;