Pages

2015/04/28

マイナスとプラスを変換する SQL

数値のプラス・マイナスを反転

数値を扱う際、その数値をマイナスにしたり、プラスに変換したい場合は、以下のような方法がある。
UPDATE
 Hoge
SET
 Point = Point * -1

数値を常にマイナスに

プラスとマイナスを反転したいならこれで良いのだが、常にマイナスにしたい場合は、UPDATE 文に対して CASE を使い、処理を分岐させなければならない。
UPDATE
 Hoge
SET
 Point = CASE WHEN Point > 0 THEN Point * -1 ELSE Point END

数値を常にプラスに

逆に、常にプラス(絶対値)にしたいんだよ、という場合は...
UPDATE
 Hoge
SET
 Point = ABS(Point)
ABS 関数は、数値によってはオーバーフローが発生してしまうので注意。
ABS (Transact-SQL) - MSDN - Microsoft

ちなみに、ABS ってなんだろうと思って調べたのだが、absolute value の略であるようだ。
Related Posts Plugin for WordPress, Blogger...