続けて、数値を扱う関数について見ていきましょう。
数値の妥当性チェック、丸めを行う関数の一覧
関数名 | 戻り値 | 説明 |
---|---|---|
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 */