Skip to content

sql-numeric-functions

SQL 包含一套丰富的内置函数,用于对数值数据执行操作。这些函数可大致分类,对于直接在查询中进行数据分析、转换和计算至关重要。确切的函数名称和功能在不同 SQL 方言(如 PostgreSQL、MySQL 和 SQL Server)之间可能略有差异,但核心概念是通用的。

这些函数对单个数值进行操作并返回单个值。下面是常见函数及其示例的列表。

函数描述示例用法和结果
ABS(x)返回 x 的绝对值(非负值)。SELECT ABS(-15.7); → 15.7
ROUND(x, d)将值 x 四舍五入到 d 位小数。如果省略 d,则四舍五入到最接近的整数。SELECT ROUND(123.456, 2); → 123.46
CEIL() / CEILING(x)返回大于或等于 x 的最小整数值。SELECT CEILING(15.2); → 16
FLOOR(x)返回小于或等于 x 的最大整数值。SELECT FLOOR(15.7); → 15
POWER(x, y)返回 x 的 y 次幂。SELECT POWER(3, 4); → 81
SQRT(x)返回 x 的非负平方根。SELECT SQRT(64); → 8
MOD(x, y)返回 x 除以 y 的余数(取模运算符)。SELECT MOD(10, 3); → 1
SIGN(x)根据 x 是负数、零还是正数,返回 -1、0 或 1。SELECT SIGN(-25); → -1
PI()返回 Pi 的常量值。SELECT PI(); → 3.14159265...
RAND() / RANDOM()返回一个介于 0 和 1 之间的随机浮点值。(语法因 RDBMS 而异)。SELECT RAND(); → 0.12345... (一个随机值)

这些是用于科学和工程计算的更专业的数学函数。大多数系统期望角度以弧度表示。

函数描述
SIN(x), COS(x), TAN(x)返回 x 的正弦、余弦和正切,其中 x 是以弧度表示的角度。
ASIN(x), ACOS(x), ATAN(x)返回 x 的反正弦、反余弦和反正切。
DEGREES(x), RADIANS(x)分别将值从弧度转换为度,以及从度转换为弧度。
LOG(x), LOG10(x), LN(x)返回 x 的自然对数(以 e 为底)或常用对数(以 10 为底)。
EXP(x)返回 e 的 x 次幂。

聚合函数注意事项: 不要将标量数值函数与聚合函数(如 SUM()、AVG()、COUNT()、MIN() 和 MAX())混淆。聚合函数对一组值(例如,列中的所有值)进行操作,以返回单个汇总值,通常与 GROUP BY 子句一起使用。