T-SQL:如何使正值变为等效负值(例如“10.00”到“-10.00”

时间:2010-06-07 01:55:00

标签: tsql stored-procedures

好的,我有一个名为“得分”的DECIMAL字段。 (例如10.00

现在,在我的SP中,我想在更新事务中增加/减少此字段的值。

所以我可能想这样做:

SET @NewScore = @CurrentScore + @Points

其中@Points是我要增加/减少的值。

现在让我们说@Points = 10.00

在某种情况下,我希望10.00成为-10.00

因此该声明将被翻译为:

SET @NewScore = @CurrentScore + -10.00

我该怎么做?

我知道这是一个奇怪的问题,但基本上我希望该语句是动态的,因为我不希望有一个不同的语句来递增/递减该值。

我只想要这样的事情:

SET @Points = 10.00
IF @ActivityBeingPerformedIsFoo
BEGIN
   -- SET @Points to be equivalent negative value, (e.g -10.00)
END
SET @NewScore = @CurrentScore + @Points

4 个答案:

答案 0 :(得分:4)

你能不能将它乘以-1?

答案 1 :(得分:1)

我总是0 - @Points。在我继承的一些代码中就是这种方式。 “愚蠢的一致......”

答案 2 :(得分:0)

在某种情况下,将@Points乘以-1。

答案 3 :(得分:0)

我想用2的倍数减去它,即x - 2x