剰余(MOD)、絶対値(ABS)、切り捨て(FLOOR TRUNCATE)、四捨五入(ROUND)、切り上げ(CEILING)、書式整形(FORMAT)などの関数を解説します。
- MOD(n, m)
-
n を m で割った余り(剰余)
SELECT MOD(10, 3) AS col; +------+ | col | +------+ | 1 | +------+ SELECT MOD(3.2, 1.2) AS col; +------+ | col | +------+ | 0.8 | +------+
- ABS(x)
-
x の絶対値を返す
SELECT ABS(-9.8) AS col; +-----+ | col | +-----+ | 9.8 | +-----+
- FLOOR(x)
-
x 以下で最大の整数値を返す(切り捨て)
負の値を指定した場合にTRUNCATEと違う値を返すので注意。SELECT FLOOR(3.99) AS col; +-----+ | col | +-----+ | 3 | +-----+ SELECT FLOOR(-3.99) AS col; +-----+ | col | +-----+ | -4 | +-----+
- TRUNCATE(x, d)
-
小数点以下 d 桁目未満を切り捨てます(切り捨て)
負の値を指定した場合にFLOORと違う値を返すので注意。SELECT TRUNCATE(3.99, 0) AS col; +-----+ | col | +-----+ | 3 | +-----+ SELECT TRUNCATE(-3.99, 0) AS col; +-----+ | col | +-----+ | -3 | +-----+
- ROUND(x[, d])
-
四捨五入して小数点以下 d 桁に丸めます
SELECT ROUND(3.99, 0) AS col; +-----+ | col | +-----+ | 4 | +-----+ SELECT ROUND(-3.99, 0) AS col; +-----+ | col | +-----+ | -4 | +-----+
- CEILING(x) 又は CEIL(x)
-
x 以上で最小の整数値を返します(切り上げ)
SELECT CEILING(3.01) AS col; +-----+ | col | +-----+ | 4 | +-----+ SELECT CEILING(-3.01) AS col; +-----+ | col | +-----+ | -3 | +-----+
- LEAST(x1, x2, ...)
-
引数(x1, x2, ...)の中で最小の値を返します
SELECT LEAST(3.01, -9, 24.3) AS col; +-------+ | col | +-------+ | -9.00 | +-------+
- GREATEST(x1, x2, ...)
-
引数(x1, x2, ...)の中で最大の値を返します
SELECT GREATEST(3.01, -9, 24.3) AS col; +-------+ | col | +-------+ | 24.30 | +-------+
- FORMAT(x,d)
-
数値 x を '#,##0.##' の3桁区切りの書式に変換し、小数点以下桁数 d に丸めて返す。
SELECT FORMAT(1533.545, 2) AS col; +----------+ | col | +----------+ | 1,533.55 | +----------+ SELECT FORMAT(0.045, 2) AS col; +------+ | col | +------+ | 0.05 | +------+
- RAND() 又は RAND(seed)
-
0以上1未満のランダムな浮動小数点値を返す。
seedが指定された場合はランダムシード値として使用されます。
SELECT RAND() AS col; +--------------------+ | col | +--------------------+ | 0.8328187827326532 | +--------------------+