
# SQL数学函数
#### 功能描述
数学函数为标量函数中的一种，只支持数值类型的字段，能够实现对数值进行取整、取绝对值、求余等功能，具体请参考[表1]。
在数学运算中，如果表达式里涉及的操作数皆为整数，那么SQL将会采用整数运算，否则便会切换到浮点运算。您可以将其中一个操作数转换为FLOAT类型来强制进行切换，运行时SQL会将大多数表达式中的32位浮点数扩展到64位。
#### 语法格式
```
SELECT ABS(fieldname1) AS fieldname1_abs
```
#### 数学函数语句
 表1数学函数语句 
| 语句                     | 说明                                                                                                                                                                                                          | 示例                                 |
|:---|:---|:---|
| 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\]。
1. 字段样例 x:0.5
   
2. 查询和分析语句
   ```
   select  ACOS(x)
   ```
   
3. 查询和分析结果
   表2查询和分析结果 
   | x   | **EXPR$1**         |
   |:---|:---|
   | 0.5 | 1.0471975511965979 |
      
   
**ATAN(expr)** **函数**
ATAN求参数值的反正切，y= arctanx，x的取值范围R。
1. 字段样例 x:0.5
   
2. 查询和分析语句
   ```
   select  ATAN(X)
   ```
   
3. 查询和分析结果
   表3查询和分析结果 
   | x   | **EXPR$1**         |
   |:---|:---|
   | 0.5 | 1.0471975511965979 |
      
   
**ATAN2(expr)函数**
ATAN2从直角坐标（x，y）到极坐标（r，θ）的转换角度θ。
1. 字段样例 x:3；y:4
   
2. 查询和分析语句
   ```
   SELECT x , y, ATAN2(x,y)
   ```
   
3. 查询和分析结果
   表4查询和分析结果 
   | x | y | **EXPR$0**         |
   |:--|:--|:---|
   | 3 | 4 | 0.6435011087932844 |
      
   
 
