我有这个问题:
Select [col], DENSE_RANK() Over(ORDER BY col DESC)as rank From Table
我有2列,x和y。 但我想更新列x中的数据与DENSE_RANK()的结果。 Honeslty,我不知道该查询是如何工作的,但是当我尝试这个工作时。
但是当我在查询构建器中尝试查询时,会出现警告"不支持OVER SQL构造或语句。" 。所以我需要在第x列中对数据进行排名,然后将排名结果保存到第y列。
答案 0 :(得分:1)
您可以执行以下操作。此处b
和a
是表别名。您需要使用同一个表加入 - >获取排名数据 - >然后更新所需的列
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;