Mysql常用函数 -- 数值函数

#  数值函数

-- 数字格式化 将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

猜你喜欢

转载自blog.csdn.net/sunrainamazing/article/details/80749582