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) + m
m
和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)