続けて、数値を扱う関数について見ていきましょう。

数値の妥当性チェック、丸めを行う関数の一覧

関数名 戻り値 説明
ISNUMERIC int 数値として有効であるかを返します。1:有効、0:無効
ROUND 数値(入力値依存) 指定した長さに丸めた数値を返します
CEILING 数値(入力値依存) 指定した値以上の最小整数を返します
FLOOR 数値(入力値依存) 指定した値以下の最大整数を返します

数値の妥当性チェック(ISNUMERIC)

引数が数値として妥当かどうかをチェックするには、ISNUMERIC関数を利用します。数値として妥当な場合は1、妥当でない場合は0が返ります。

ISNUMERIC関数の実行例


--数値として妥当かどうか
SELECT ISNUMERIC('\-123,456.78')
/* → 1 (有効) */

SELECT ISNUMERIC('abc1234')
/* → 0 (無効) */

数値の丸め、切り捨て、近似整数(ROUND、CEILING、FLOOR)

数値を丸めたり切り捨てしたりするには、ROUND関数を利用します。第1引数に対象の値、第2引数に丸めを行う桁を指定します。第3引数に0以外の値を設定すると、四捨五入ではなく、切り捨てを行います。 近似の整数値を取得するには、CEILING関数とFLOOR関数を利用できます。CEILING関数が数値以上の最小の整数を返すのに対し、FLOOR関数は数値以下の最大の整数を返します。

ROUND関数、CEILING関数、FLOOR関数の実行例


--指定した桁で四捨五入と切り捨て
SELECT ROUND(123.45 ,-1)
/* → 120.00 (10の位で四捨五入)*/

SELECT ROUND(123.45 , 0)
/* → 123.00 (1の位で四捨五入)*/

SELECT ROUND(123.45 , 1)
/* → 123.50 (小数点第1位で四捨五入)*/

SELECT ROUND(123.45 , 1 , 1)
/* → 123.40 (小数点第1位で切り捨て)*/

SELECT ROUND(123.45 , 2)
/* → 123.45 (小数点第2位で四捨五入)*/


--指定した数値以上で最小の整数
SELECT CEILING(0.5) /* → 1 */
SELECT CEILING(-0.5) /* → 0 */
SELECT CEILING(-1.5) /* → -1 */

--指定した数値以下で最大の整数
SELECT FLOOR(0.5) /* → 0 */
SELECT FLOOR(-0.5) /* → -1 */
SELECT FLOOR(-1.5) /* → -2 */