ゲーマーときどきエンジニア

基本ゲーム記事を書いて、ときどき考えを発信するエンジニアのブログです!

【SQL Server】四捨五入ができるROUND関数について解説します

こんにちは。たいら(@tairaengineer2)です。
この記事では、SQL Serverで四捨五入ができるROUND関数について解説します。

スポンサーリンク

 

前提条件

この記事では、Microsoft SQL Server2017を使っています。
インストールの仕方は、下の記事をご参考ください。

www.tairax.com

ROUND関数とは

ROUND関数とは、指定した桁で四捨五入することができる関数です。

ROUND (Transact-SQL)
適用対象: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse
指定された長さまたは有効桁数に丸めた数値を返します。

ROUND (Transact-SQL) - SQL Server | Microsoft Docsから引用させて頂きました

ROUND関数の基本的な使い方は、以下です。

ROUND(【四捨五入したい数or列】 ,  【有効桁数】 [, 【四捨五入or切り捨て】 ])

赤太字のカッコで囲っている箇所を変更して頂ければOKです。

第二引数の【有効桁数】は、 第一引数を丸めるときの有効桁数です。
例えば

  • 例1:1の場合、小数点第一位
  • 例2:-2の場合、100の位

3番目の【四捨五入or切り捨て】は、オプションなので指定しなくてもOKです。
指定できるものは数字のみで、意味は以下です。

  • 0:四捨五入
  • 0以外:切り捨て

もし指定しなかった場合、デフォルトは0、つまり四捨五入が指定されます。

では、次の章で実際に使ってみます!

解説で使うテーブル

ROUND関数で解説で使うテーブルは、【Test】テーブルです。
テーブルの中身は以下になります。

f:id:Tairax:20200331193152p:plain

number name per
1 Mike 100.581
2 Ai -3.217
3 Cup 1.544

このテーブルに対して、

  • 小数点第二位を四捨五入(第三引数は指定しない)
  • 1の位を切り捨て(第三引数を切り捨てに指定)

の2パターンで実行していきます。

パターン1:小数点第二位を四捨五入(第三引数は指定しない)

【Test】テーブルの【per】の列に対して、小数点第二位を四捨五入します。
比較できるように、元の列も残します。
SELECT文は、以下になります。

SELECT [number]
      ,[name]
      ,[per]
	  ,ROUND(per, 2) AS round_per
  FROM [Test].[dbo].[Test]

実行結果は以下になります。

f:id:Tairax:20200331194146p:plain

number name per round_per
1 Mike 100.581 100.580
2 Ai -3.217 -3.220
3 Cup 1.544 1.540

小数点第二位で四捨五入ができていることが確認できました!

パターン2:1の位を切り捨て(第三引数を切り捨てに指定)

【Test】テーブルの【per】の列に対して、1の位を切り捨てます。
比較できるように、元の列も残します。
SELECT文は、以下になります。

SELECT [number]
      ,[name]
      ,[per]
	  ,ROUND(per, -1, 1) AS round_per
  FROM [Test].[dbo].[Test]

実行結果は以下になります。

f:id:Tairax:20200331194625p:plain

number name per round_per
1 Mike 100.581 100.000
2 Ai -3.217 0.000
3 Cup 1.544 0.000

1の位で切り捨てができていることが確認できました!

 

スポンサーリンク

 

まとめ:四捨五入をしたいとき、ROUND関数を使ってみよう!

以上がROUND関数の解説です。
四捨五入をしたいとき、ぜひROUND関数を使ってみてください!。

あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ

 

他にもSQL Serverについて記事を書いています。
良ければこちらもご参考ください。

【SQL Server】連番をふれるROW_NUMBER関数について解説します

【SQL Server】大文字から小文字に変換するLOWER関数について解説します

 

今までブログで書いたSQL Serverの解説記事のまとめは、こちらをご参考ください。

【SQL Server】ブログで書いた使い方記事のまとめ