T-SQL: как заставить положительное значение превратиться в эквивалентное отрицательное значение (например, от «10,00» до «-10,00») - PullRequest
1 голос
/ 07 июня 2010

Хорошо, поэтому у меня есть поле 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 ]

4 голосов
/ 07 июня 2010

Разве вы не можете просто умножить его на -1?

1 голос
/ 07 июня 2010

Я всегда делаю 0 - @Points. Так было в некотором коде, который я унаследовал. "Глупая последовательность ..."

0 голосов
/ 07 июня 2010

Я подумал о том, чтобы вычесть его с кратным 2, то есть x - 2x

0 голосов
/ 07 июня 2010

Умножьте @Points на -1 в этом определенном сценарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...