SQL数学函数
数学函数
1. 基本数学函数
ABS(x)
:返回x
的绝对值。CEIL(x)
或CEILING(x)
:返回大于或等于x
的最小整数。FLOOR(x)
:返回小于或等于x
的最大整数。ROUND(x, n)
:将x
四舍五入到n
位小数。TRUNC(x, n)
:将x
截断到n
位小数(在某些数据库系统中,如 Oracle)。
2. 三角函数
SIN(x)
:返回x
的正弦值。COS(x)
:返回x
的余弦值。TAN(x)
:返回x
的正切值。ASIN(x)
:返回x
的反正弦值。ACOS(x)
:返回x
的反余弦值。ATAN(x)
:返回x
的反正切值。
3. 指数和对数函数
EXP(x)
:返回e
的x
次幂。LN(x)
:返回x
的自然对数。LOG(x)
:返回x
的以 10 为底的对数。LOG2(x)
:返回x
的以 2 为底的对数。
4. 幂函数
POWER(x, y)
:返回x
的y
次幂。SQRT(x)
:返回x
的平方根。
5. 随机函数
RAND()
:返回一个在 0 到 1 之间的随机数。RANDOM()
:返回一个在 0 到 1 之间的随机数(在某些数据库系统中,如 PostgreSQL)。
6. 其他数学函数
GREATEST(x, y, ...)
:返回参数中的最大值。LEAST(x, y, ...)
:返回参数中的最小值。MOD(x, y)
:返回x
除以y
的余数。
示例
假设有一个表 numbers
,包含以下数据:
1 | 3.14 |
2 | -2.71 |
3 | 1.41 |
示例 1:基本数学函数
SELECT
id,
value,
ABS(value) AS absolute_value,
CEIL(value) AS ceiling_value,
FLOOR(value) AS floor_value,
ROUND(value, 2) AS rounded_value
FROM
numbers;
结果:
1 | 3.14 | 3.14 | 4 | 3 | 3.14 |
2 | -2.71 | 2.71 | -2 | -3 | -2.71 |
3 | 1.41 | 1.41 | 2 | 1 | 1.41 |
示例 2:三角函数
SELECT
id,
value,
SIN(value) AS sine_value,
COS(value) AS cosine_value,
TAN(value) AS tangent_value
FROM
numbers;
结果:
1 | 3.14 | 0.00159265 | -0.999999999 | -0.00159265 |
2 | -2.71 | -0.420201004 | -0.912945251 | 0.460170004 |
3 | 1.41 | 0.987346029 | 0.158333152 | 6.236147292 |
示例 3:指数和对数函数
SELECT
id,
value,
EXP(value) AS exponential_value,
LN(value) AS natural_logarithm,
LOG(value) AS common_logarithm
FROM
numbers;
结果:
1 | 3.14 | 23.104000057 | 1.144223892 | 0.496929648 |
2 | -2.71 | 0.06598803585 | -0.997547553 | -0.432659903 |
3 | 1.41 | 4.103566842 | 0.343323839 | 0.150162647 |
示例 4:幂函数
SELECT
id,
value,
POWER(value, 2) AS squared_value,
SQRT(value) AS square_root
FROM
numbers;
结果:
1 | 3.14 | 9.8596 | 1.772004515 |
2 | -2.71 | 7.3441 | NULL |
3 | 1.41 | 1.9881 | 1.187434209 |
示例 5:随机函数
SELECT
id,
value,
RAND() AS random_value
FROM
numbers;
结果:
1 | 3.14 | 0.123456789 |
2 | -2.71 | 0.987654321 |
3 | 1.41 | 0.543210987 |