SQL数学函数
功能描述
数学函数为标量函数中的一种,只支持数值类型的字段,能够实现对数值进行取整、取绝对值、求余等功能,具体请参考表1。
在数学运算中,如果表达式里涉及的操作数皆为整数,那么SQL将会采用整数运算,否则便会切换到浮点运算。您可以将其中一个操作数转换为FLOAT类型来强制进行切换,运行时SQL会将大多数表达式中的32位浮点数扩展到64位。
语法格式
SELECT ABS(fieldname1) AS fieldname1_abs
数学函数语句
语句 | 说明 | 示例 |
|---|---|---|
ABS(expr) | 取绝对值。 | SELECT ABS(fieldname1) |
CEIL(expr) | 向上取整,即向上取最接近的整数值 | SELECT CEIL(fieldname1) |
FLOOR(expr) | 向下取整,即向下取最接近的整数值。 | SELECT FLOOR(fieldname1) |
TRUNCATE(expr, digits) | 将expr截断为特定的digits位数。如果数字为负数,则会截断小数点左侧的许多位置。如果未指定,数字默认为零。 | SELECT TRUNCATE(fieldname1, 2) |
ROUND(expr, digits) | ROUND(expr, digits)对expr值进行四舍五入,保留小数位数由digits指定。expr可以是整数或浮点数,但digits必须是整数。返回值的类型由expr的类型决定。如果没有指定digits,则使用默认值0。如果digits是负数,则返回expr四舍五入后的整数。当expr是非数字值时,会被转换为数字0。如果expr是无限位数的数字,则被转换为最接近的DOUBLE类型的有限位数的数字。 | SELECT ROUND(fieldname1, 2) |
x + y | 加法。 | SELECT fieldname1 + fieldname2 |
x - y | 减法。 | SELECT fieldname1 - fieldname2 |
x * y | 乘法。 | SELECT fieldname1 * fieldname2 |
x / y | 除法。 | SELECT fieldname1 / fieldname2 |
MOD(x, y) | 求余,即取x除以y后的余数。 | SELECT MOD(fieldname1, fieldname2) |
LN(expr) | 对数(以e为底)。 | SELECT ln(expr) |
LOG10(expr) | 对数(以10为底)。 | SELECT LOG10(expr) |
POWER(expr,power) | expr的power次幂。 | SELECT POWER(expr ,2) |
SQRT(expr) | expr的平方根 | SELECT SQRT(expr) |
SIN(expr) | 正弦 | SELECT SIN(expr) |
COS(expr) | 余弦 | SELECT COS(expr) |
TAN(expr) | 正切 | SELECT TAN(expr) |
COT(expr) | 余切 | SELECT COT(expr) |
ASIN(expr) | 反正弦 | SELECT ASIN(expr) |
ACOS(expr) | 反余弦 | SELECT ACOS(expr) |
ATAN(expr) | 反正切 | SELECT ATAN(expr) |
示例及说明
ACOS(expr)函数
求参数值的反余弦,y=arccosx,x的取值范围[-1,1]。
- 字段样例
x:0.5
- 查询和分析语句
select ACOS(x) - 查询和分析结果
表2 查询和分析结果 x
EXPR$1
0.5
1.0471975511965979
ATAN(expr)函数
ATAN求参数值的反正切,y=arctanx,x的取值范围R。
- 字段样例
x:0.5
- 查询和分析语句
select ATAN(X) - 查询和分析结果
表3 查询和分析结果 x
EXPR$1
0.5
1.0471975511965979
ATAN2(expr)函数
ATAN2从直角坐标(x,y)到极坐标(r,θ)的转换角度θ。
- 字段样例
x:3;y:4
- 查询和分析语句
SELECT x , y, ATAN2(x,y)
- 查询和分析结果
表4 查询和分析结果 x
y
EXPR$0
3
4
0.6435011087932844

