2011年2月3日木曜日

(SQL Server)切り捨て

SQL Server で切り捨てを行う関数です。

--2016.10.25追記
TRUNC 関数が使用できる環境の場合は TRUNC を使用した方が良いです。

ROUND
SELECT ROUND(145.45, 0, 1);
SELECT ROUND(-145.45, 0, 1);
結果
145.00
-145.00
ROUND は四捨五入を行う関数ですが、第3パラメータに0以外の値を指定すると切り捨てが行えます。処理する値が正や負に関係なく、第2パラメータで指定された少数点以下で切り捨てられます。第2パラメータをマイナス指定すると小数点から左側で切り捨てが行えます。





他に CEILING (天井)と FLOOR (床)でも切り捨ては行えますが、処理する値が正か負で結果が変わります。引数以上で最小の整数(天井)を返すか、引数以下で最大の整数(床)を返すか、という事になっています。通常は ROUND で足りると思います。

CEILING
SELECT CEILING(145.45);
SELECT CEILING(-145.45);
結果
146.00
-145.00

FLOOR
SELECT FLOOR(145.45);
SELECT FLOOR(-145.45);
結果
145.00
-146.00

■環境
OS:Microsoft Windows XP Home Edition 日本語 ServicePack 3
DB:Microsoft SQL Server 2005 Express Edition Service Pack 2 (9.00.3080.00)
DB管理ツール:Microsoft SQL Server Management Studio Express (9.00.3042.00)

■関連投稿
SQL Server での切り捨て
SQL Server での四捨五入