| MOD | PI | POW | POWER | RAND |
| ROUND | SIGN | SQRT | TRUNCATE |
1、MOD
MOD(number1, number2) :返回一个数字除以另一个数字的余数。
语法:
1、MOD(number1, number2)
2、number1 MOD number2
3、number1 % number2
number1:被除数。
number2:除数。
- 如果
number2等于0,MOD()函数将会返回NULL。- 如果任何参数为
NULL,MOD()函数将会返回NULL。
SELECT
MOD(100, 7),
MOD(100, 10),
100 MOD 7,
100 MOD 10,
100 % 7,
100 % 10,
MOD(0, 1),
MOD(1, 0),
MOD(NULL, 1),
MOD(1, NULL)

2、PI
PI() :返回 6 位小数位的 PI 值
SELECT
PI(),
PI() + 0.000000000000000,
PI() * 10000000000000000

3、POW
POW(x, y) :计算 x 的 y 次幂并返回结果。
x:次幂计算中的基数。
y:次幂计算中的指数。如果任意一个参数为
NULL,POW()函数将会返回NULL。
SELECT
POW(2, 0),
POW(2, 2),
POW(2, 4),
POW(2.5, 2),
POW(2, -2),
POW(2, -4),
POW(2, NULL),
POW(NULL, 2),
POW(NULL, NULL)

4、POWER
POWER(x, y) :计算 x 的 y 次幂并返回结果, POWER() 函数等同于 POW() 函数。
x:次幂计算中的基数。
y:次幂计算中的指数。如果任意一个参数为
NULL,POW()函数将会返回NULL。
SELECT
POW(2, 0),
POW(2, 2),
POW(2, 4),
POW(2.5, 2),
POW(2, -2),
POW(2, -4),
POW(2, NULL),
POW(NULL, 2),
POW(NULL, NULL)

5、RAND
RAND() :返回一个 0 (包含) 和 1 (不包含) 之间的随机数。
RAND()返回的是 0 和 1 之间的随机小数,如果你想返回其他区间(比如m和n)的随机数,请使用以下公式:
m和n之间的随机数:RAND() * (n - m) + mm和n之间的随机整数:FLOOR(RAND() * (n - m + 1) + m)
返回 0 和 1 之间的随机数
SELECT
RAND(),
RAND(),
RAND(),
RAND()

返回 10 和 20 之间的随机数
SELECT
RAND() * (20 - 10) + 10 as A,
RAND() * (20 - 10) + 10 as B,
RAND() * (20 - 10) + 10 as C,
RAND() * (20 - 10) + 10 as D

返回 10 和 20 之间的随机整数
SELECT
FLOOR(RAND() * (20 - 10 + 1) + 10) as A,
FLOOR(RAND() * (20 - 10 + 1) + 10) as B,
FLOOR(RAND() * (20 - 10 + 1) + 10) as C,
FLOOR(RAND() * (20 - 10 + 1) + 10) as D

6、ROUND
ROUND(x,d) :将数字四舍五入到指定的小数位数。如果需要返回数字的整数部分,请使用 FLOOR(),CEIL(),CEILING()函数。
x:被处理的数字。
d:需要保留的小数位数。
- 如果
d大于等于x的小数位数,则返回原数字。- 如果
d小于x的小数位数,则将x的小数位四舍五入到d位后返回。- 如果
d为负数,ROUND()函数将会从小数点开始向整数部分的d位数字替换为0。- 如果任意一个参数为
NULL,ROUND()函数将会返回NULL。
SELECT
ROUND(123.179, 1),
ROUND(123.179, 2),
ROUND(123.179, 4),
ROUND(123.179, 0),
ROUND(123.179, -1),
ROUND(123.179, -2),
ROUND(123.179, NULL)

7、SIGN
SIGN(number) :返回指定的数字的符号。参数为正数、负数和零时分别返回 1, -1 和 0。
- 如果
number大于0,SIGN()函数将会返回1。- 如果
number等于0,SIGN()函数将会返回0。- 如果
number小于0,SIGN()函数将会返回-1。- 如果
number为NULL,SIGN()函数将会返回NULL。
SELECT
SIGN(123),
SIGN(123.123),
SIGN(-123),
SIGN(-123.123),
SIGN(0),
SIGN(NULL)

8、SQRT
SQRT(number) :返回一个数字的平方根。
如果参数
number是负数或者NULL,SQRT()函数将会返回NULL。
SELECT
SQRT(16),
SQRT(25),
SQRT(49),
SQRT(100),
SQRT(101),
SQRT(-100),
SQRT(NULL)

9、TRUNCATE
TRUNCATE(x,d) :截取数字为指定的小数位数。 TRUNCATE() 函数只是按指定的位数截断小数,而不进行四舍五入。如果您需要对小数进行四舍五入,请使用 ROUND()函数。如果需要返回数字的整数部分,请使用FLOOR(),CEIL(),CEILING()函数。
x:被处理的数字。
d:需要保留的小数位数。
- 如果
d大于等于x的小数位数,则返回原数字。- 如果
d小于x的小数位数,则将x的小数位数截断为d位后返回。- 如果
d为负数,TRUNCATE()函数将会从小数点开始向整数部分的d位数字替换为0。- 如果任意一个参数为
NULL,TRUNCATE()函数将会返回NULL。
SELECT
TRUNCATE(123.179, 1),
TRUNCATE(123.179, 2),
TRUNCATE(123.179, 4),
TRUNCATE(123.179, 0),
TRUNCATE(123.179, -1),
TRUNCATE(123.179, -2),
TRUNCATE(123.179, NULL)




















