Sql 如何减少表中某列的值,但不允许其低于零?

Sql 如何减少表中某列的值,但不允许其低于零?,sql,asp.net,sql-server,Sql,Asp.net,Sql Server,我有一个SQL,它将分数减少1 db2.Execute("UPDATE Score " + "SET EnglishCorrect = CASE WHEN EnglishCorrect > 0 THEN (EnglishCorrect -1) ELSE 0 END, " + "KanaCorrect = CASE WHEN KanaCorrect > 0 THEN (KanaCorrect -1) ELSE 0 END, " + "RomajiCorrect = CASE WHE

我有一个SQL,它将分数减少1

db2.Execute("UPDATE Score " +

"SET EnglishCorrect = CASE WHEN EnglishCorrect > 0 THEN (EnglishCorrect -1) ELSE 0 END, " +
"KanaCorrect = CASE WHEN KanaCorrect > 0 THEN (KanaCorrect -1) ELSE 0 END,  " +
"RomajiCorrect = CASE WHEN RomajiCorrect > 0 THEN (RomajiCorrect -1) ELSE 0 END, " +
"KanjiCorrect = CASE WHEN KanjiCorrect > 0 THEN (KanjiCorrect -1) ELSE 0 END");
我现在想改变这一点,使分数减少一个可变的数字。该数字将存储在一个名为pts的C#整数中

因此,我将把
-1
更改为
“-”+pts+”

但我有一个问题,因为EnglishCorrect、KanaCorrect、RomajiCorrect和KanjiCorrect的值不能小于零

有没有人能建议我怎样才能把分数降到零,而不是更低

例如,如果EnglishCorrect为5,pts为6,那么我希望EnglishCorrect改为0

   "SET EnglishCorrect = CASE WHEN (EnglishCorrect -pts)>= 0 THEN (EnglishCorrect -pts) ELSE 0 END, " +
    "KanaCorrect = CASE WHEN KanaCorrect -pts >= 0 THEN (KanaCorrect -pts) ELSE 0 END,  " +
    "RomajiCorrect = CASE WHEN RomajiCorrect-pts >= 0 THEN (RomajiCorrect -pts) ELSE 0 END, " +
    "KanjiCorrect = CASE WHEN KanjiCorrect-pts >= 0 THEN (KanjiCorrect -pts) ELSE 0 END");

希望这有帮助。

谢谢,我会尝试一下,如果答案正确,我会更新答案。