每次超过一组中的数字时,将一列中的每个值加一?

Add one to every value in a column each time that it exceeds the numbers in a set?

我正在处理排名危机。想象一下这样的数据:

Data Rank
Alice 10
Bob 25
Claire 33
Dale 42
Ebony 56
Fed 68

假设我有一组值:13、35 和 49。我想遍历我的这组等级,并在每次超过该组中的某个值时为每个等级添加一个。这意味着我的最终输出将计算为:

Data Rank
Alice 10 + 0 = 10
Bob 25 + 1 = 26
Claire 33 + 1 = 34
Dale 42 + 2 = 44
Ebony 56 + 3 = 59
Fed 68 + 3 = 71

如何实现?除非我真的必须,否则我不想写游标。我怀疑加入可以以某种方式解决这个问题。

稍微填空,但我假设你可能只在这里使用LEFT JOINCOUNT

SELECT YT.Data,
       YT.Rank + COUNT(OT.OtherValue) AS Rank
FROM dbo.YourTable YT
     LEFT JOIN dbo.OtherTable OT ON YT.Rank > OT.Othervalue
GROUP BY YT.Data,
         YT.Rank;