如何制作和更新数据库c#

时间:2016-06-11 16:46:20

标签: c# sql-server-2005 ranking

我有这个问题:

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

我有2列,x和y。 但我想更新列x中的数据与DENSE_RANK()的结果。 Honeslty,我不知道该查询是如何工作的,但是当我尝试这个工作时。

但是当我在查询构建器中尝试查询时,会出现警告"不支持OVER SQL构造或语句。" 。所以我需要在第x列中对数据进行排名,然后将排名结果保存到第y列。

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作。此处ba是表别名。您需要使用同一个表加入 - >获取排名数据 - >然后更新所需的列

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;