更新时间:2024-09-19 GMT+08:00

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