Microsoft SQL Server:根据条件从上面的列中减去



假设我们有一个表,我想创建一个类似于"所受伤害"的列。

如果上面行的名称与此列相同,请减去此行的最后一行损坏。否则,从这一行中减去生命,再减去这一行的伤害。

Name    Damage  Life                    Damage Taken
Bill    97      100     ->  (100 - 97) =    3
Bill    93      100     ->  (97 - 93) =     4
Bill    71      100     ->  (93 - 71) =     22
Bill    54      100     ->  (71 - 54) =     17
Stacy   112     200     ->  (200 - 112) =   88
Stacy   109     200     ->  (112 - 109) =   3
Stacy   91      200     ->  (109 - 91) =    18
Stacy   81      200     ->  (91 - 81) =     10
Stacy   62      200     ->  (81 - 62) =     19

我对 SQL 相对较新,并且像这样考虑C++列的底层逻辑。

for(int i = 0; i<Name.size(); i++)
    if(Name[i] == Name[i-1]){
        damageTaken[i] = Damage[i-1] - Damage[i];
    }
    else{
        damageTaken[i] = Life[i] - Damage[i];
    }

给你一个提示。 尝试在SQL中查找LAG()函数。

LAG (Transact-SQL(

相关内容

最新更新