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