# 数值函数
-- 数字格式化 将number X设置为格式 '#,###,###.##',
-- 以四舍五入的方式保留到小数点后D位, 而返回结果为一个字符串。
SELECT FORMAT(25123.265,2); -- 25,123.27
-- 向上取整
-- CEILING(X) CEIL(X) 返回不小于X 的最小整数值。
SELECT CEILING(1.23); -- 2
SELECT CEILING(1.99); -- 2
SELECT CEILING(-1.23); -- -1
SELECT CEILING(-1.99); -- -1
SELECT CEIL(1.23); -- 2
SELECT CEIL(1.99); -- 2
SELECT CEIL(-1.23); -- -1
SELECT CEIL(-1.99); -- -1
-- 向下取整
-- FLOOR(X) 返回不大于X的最大整数值 。
SELECT FLOOR(1.23); -- 1
SELECT FLOOR(1.99); -- 1
SELECT FLOOR(-1.23); -- -2
SELECT FLOOR(-1.99); -- -2
-- 取模
-- MOD(N,M) , N % M N MOD M 返回N 被 M除后的余数。
SELECT MOD(235,10); --5
-- 常量值
SELECT PI(); -- 3.141593
-- 随机函数
-- RAND() RAND(N)
-- 返回一个随机浮点值 v ,范围在 0 到1 之间 (即, 其范围为 0 ≤ v ≤ 1.0)。
-- 若已指定一个整数参数 N ,则它被用作种子值,用来产生重复序列。
SELECT RAND(); -- 随机值
SELECT RAND(2); -- 定值 无论执行多少遍都是一样的值
SELECT RAND(3); -- 定值 无论执行多少遍都是一样的值
SELECT FLOOR(7 + (RAND() * 6));
SELECT * FROM ms_nick ORDER BY RAND();
-- 将结果随机排列
-- 注意,在WHERE语句中,WHERE每执行一次, RAND()就会被再计算一次。
SELECT * FROM ms_nick WHERE user_id >2
ORDER BY RAND() ;
SELECT *, RAND() AS r FROM ms_nick WHERE user_id >2
ORDER BY r DESC ;
SELECT *, ROUND(RAND(),2)AS r FROM ms_nick WHERE user_id >2
ORDER BY r DESC ;
-- 四舍五入函数
-- ROUND(X) ROUND(X,D)
-- 返回参数X, 其值接近于最近似的整数。
-- 在有两个参数的情况下,返回 X ,其值保留到小数点后D位,而第D位的保留方式为四舍五入。
-- 若要接保留X值小数点左边的D 位,可将 D 设为负值。
SELECT ROUND(-1.23); -- -1
SELECT ROUND(-1.58); -- -2
SELECT ROUND(1.58); -- 2
SELECT ROUND(1.298, 1); -- 1.3
SELECT ROUND(1.298, 0); -- 1
SELECT ROUND(23.298, -1); -- 20
-- 关于精度问题
SELECT ROUND(2.5), ROUND(25E-1); -- 3 2
-- 见第二十四章 精度问题
-- SIGN(X)
-- 返回参数作为-1、 0或1的符号,该符号取决于X 的值为负、零或正。
SELECT SIGN(-2); -- -1
SELECT SIGN(0); -- 0
SELECT SIGN(2); -- 1
-- 数字截取函数
-- TRUNCATE(X,D)
-- 返回被舍去至小数点后D位的数字X。若D 的值为 0, 则结果不带有小数点或不带有小数部分。
-- 可以将D设为负数,若要截去(归零) X小数点左起第D位开始后面所有低位的值.
SELECT TRUNCATE(1.233,1); -- 1.3
SELECT TRUNCATE(1.9565,1); -- 1.9
SELECT TRUNCATE(1.988,0); -- 1
SELECT TRUNCATE(-1.998,1); -- -1.9
SELECT TRUNCATE(1224,-2); -- 1200
SELECT TRUNCATE(10.24*100,0); -- 1024
Mysql常用函数 -- 数值函数
最新推荐文章于 2024-08-18 21:52:36 发布