数学函数编辑

所有数学函数和三角函数都要求其输入(如果适用)为数字。

通用函数编辑

ABS编辑

语法

ABS(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:数字

描述:返回 numeric_exp绝对值。返回类型与输入类型相同。

SELECT ABS(-123.5), ABS(55);

  ABS(-123.5)  |    ABS(55)
---------------+---------------
123.5          |55

CBRT编辑

语法

CBRT(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回 numeric_exp立方根

SELECT CBRT(-125.5);

   CBRT(-125.5)
-------------------
-5.0066577974783435

CEIL/CEILING编辑

语法

CEIL(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:整数或长整型数字

描述:返回大于或等于 numeric_exp 的最小整数。

SELECT CEIL(125.01), CEILING(-125.99);

 CEIL(125.01)  |CEILING(-125.99)
---------------+----------------
126            |-125

语法

E()

输入:*无*

输出2.718281828459045

描述:返回欧拉数

SELECT E(), CEIL(E());

       E()       |   CEIL(E())
-----------------+---------------
2.718281828459045|3

EXP编辑

语法

EXP(numeric_exp) 

输入:

浮点数表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回以欧拉数为底numeric_exp 为指数的幂 (enumeric_exp)。

SELECT EXP(1), E(), EXP(2), E() * E();

     EXP(1)      |       E()       |     EXP(2)     |     E() * E()
-----------------+-----------------+----------------+------------------
2.718281828459045|2.718281828459045|7.38905609893065|7.3890560989306495

EXPM1编辑

语法

EXPM1(numeric_exp) 

输入:

浮点数表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回以欧拉数为底numeric_exp 为指数的幂,再减去 1 (enumeric_exp - 1)。

SELECT E(), EXP(2), EXPM1(2);

       E()       |     EXP(2)     |    EXPM1(2)
-----------------+----------------+----------------
2.718281828459045|7.38905609893065|6.38905609893065

FLOOR编辑

语法

FLOOR(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:整数或长整型数字

描述:返回小于或等于 numeric_exp 的最大整数。

SELECT FLOOR(125.01), FLOOR(-125.99);

 FLOOR(125.01) |FLOOR(-125.99)
---------------+---------------
125            |-126

LOG编辑

语法

LOG(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回 numeric_exp自然对数

SELECT EXP(3), LOG(20.085536923187668);

      EXP(3)      |LOG(20.085536923187668)
------------------+-----------------------
20.085536923187668|3.0

LOG10编辑

语法

LOG10(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回 numeric_exp以 10 为底的对数

SELECT LOG10(5), LOG(5)/LOG(10);

     LOG10(5)     |    LOG(5)/LOG(10)
------------------+-----------------------
0.6989700043360189|0.6989700043360187

PI编辑

语法

PI()

输入:*无*

输出3.141592653589793

描述:返回圆周率

SELECT PI();

      PI()
-----------------
3.141592653589793

POWER编辑

语法

POWER(
    numeric_exp, 
    integer_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

整数表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回 numeric_expinteger_exp 次幂。

SELECT POWER(3, 2), POWER(3, 3);

  POWER(3, 2)  |  POWER(3, 3)
---------------+---------------
9.0            |27.0
SELECT POWER(5, -1), POWER(5, -2);

  POWER(5, -1) |  POWER(5, -2)
---------------+---------------
0.2            |0.04

RANDOM/RAND编辑

语法

RANDOM(seed) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:使用给定的种子返回一个随机双精度浮点数。

SELECT RANDOM(123);

   RANDOM(123)
------------------
0.7231742029971469

ROUND编辑

语法

ROUND(
    numeric_exp      
    [, integer_exp]) 

输入:

数字表达式。如果为 null,则函数返回 null

整数表达式;可选。如果为 null,则函数返回 null

输出:数字

描述:返回将 numeric_exp 四舍五入到小数点后 integer_exp 位的结果。如果 integer_exp 为负数,则将 numeric_exp 四舍五入到小数点左侧 |integer_exp| 位。如果省略 integer_exp,则函数的行为就像 integer_exp 为 0 一样。返回的数字数据类型与 numeric_exp 的数据类型相同。

SELECT ROUND(-345.153, 1) AS rounded;

    rounded
---------------
-345.2
SELECT ROUND(-345.153, -1) AS rounded;

    rounded
---------------
-350.0

SIGN/SIGNUM编辑

语法

SIGN(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出: [-1, 0, 1]

描述:返回 numeric_exp 符号的指示符。如果 numeric_exp 小于零,则返回 –1。如果 numeric_exp 等于零,则返回 0。如果 numeric_exp 大于零,则返回 1。

SELECT SIGN(-123), SIGN(0), SIGN(415);

  SIGN(-123)   |    SIGN(0)    |   SIGN(415)
---------------+---------------+---------------
-1             |0              |1

SQRT编辑

语法

SQRT(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回 numeric_exp平方根

SELECT SQRT(EXP(2)), E(), SQRT(25);

  SQRT(EXP(2))   |       E()       |   SQRT(25)
-----------------+-----------------+---------------
2.718281828459045|2.718281828459045|5.0

TRUNCATE/TRUNC编辑

语法

TRUNCATE(
    numeric_exp      
    [, integer_exp]) 

输入:

数字表达式。如果为 null,则函数返回 null

整数表达式;可选。如果为 null,则函数返回 null

输出:数字

描述:返回将 numeric_exp 截断到小数点后 integer_exp 位的结果。如果 integer_exp 为负数,则将 numeric_exp 截断到小数点左侧 |integer_exp| 位。如果省略 integer_exp,则函数的行为就像 integer_exp 为 0 一样。返回的数字数据类型与 numeric_exp 的数据类型相同。

SELECT TRUNC(-345.153, 1) AS trimmed;

    trimmed
---------------
-345.1
SELECT TRUNCATE(-345.153, -1) AS trimmed;

    trimmed
---------------
-340.0

三角函数编辑

ACOS编辑

语法

ACOS(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回 numeric_exp反余弦,以弧度表示。

SELECT ACOS(COS(PI())), PI();

 ACOS(COS(PI())) |      PI()
-----------------+-----------------
3.141592653589793|3.141592653589793

ASIN编辑

语法

ASIN(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回 numeric_exp反正弦,以弧度表示。

SELECT ROUND(DEGREES(ASIN(0.7071067811865475))) AS "ASIN(0.707)", ROUND(SIN(RADIANS(45)), 3) AS "SIN(45)";

  ASIN(0.707)  |    SIN(45)
---------------+---------------
45.0           |0.707

ATAN编辑

语法

ATAN(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回 numeric_exp反正切,以弧度表示。

SELECT DEGREES(ATAN(TAN(RADIANS(90))));

DEGREES(ATAN(TAN(RADIANS(90))))
-------------------------------
90.0

ATAN2编辑

语法

ATAN2(
    ordinate, 
    abscisa)  

输入:

数字表达式。如果为 null,则函数返回 null

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回由指定的纵坐标横坐标 坐标确定的反正切,以弧度表示。

SELECT ATAN2(5 * SIN(RADIANS(45)), 5 * COS(RADIANS(45))) AS "ATAN2(5*SIN(45), 5*COS(45))", RADIANS(45);

ATAN2(5*SIN(45), 5*COS(45))|   RADIANS(45)
---------------------------+------------------
0.7853981633974483         |0.7853981633974483

COS编辑

语法

COS(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回 numeric_exp余弦,其中 numeric_exp 是以弧度表示的角度。

SELECT COS(RADIANS(180)), POWER(SIN(RADIANS(54)), 2) + POWER(COS(RADIANS(54)), 2) AS pythagorean_identity;

COS(RADIANS(180))|pythagorean_identity
-----------------+--------------------
-1.0             |1.0

COSH编辑

语法

COSH(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回 numeric_exp双曲余弦

SELECT COSH(5), (POWER(E(), 5) + POWER(E(), -5)) / 2 AS "(e^5 + e^-5)/2";

     COSH(5)     | (e^5 + e^-5)/2
-----------------+-----------------
74.20994852478785|74.20994852478783

COT编辑

语法

COT(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回 numeric_exp余切,其中 numeric_exp 是以弧度表示的角度。

SELECT COT(RADIANS(30)) AS "COT(30)", COS(RADIANS(30)) / SIN(RADIANS(30)) AS "COS(30)/SIN(30)";

     COT(30)      | COS(30)/SIN(30)
------------------+------------------
1.7320508075688774|1.7320508075688776

DEGREES编辑

语法

DEGREES(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:将弧度转换为度数

SELECT DEGREES(PI() * 2), DEGREES(PI());

DEGREES(PI() * 2)| DEGREES(PI())
-----------------+---------------
360.0            |180.0

RADIANS编辑

语法

RADIANS(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:将度数转换为弧度

SELECT RADIANS(90), PI()/2;

   RADIANS(90)    |      PI()/2
------------------+------------------
1.5707963267948966|1.5707963267948966

SIN编辑

语法

SIN(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回 numeric_exp正弦,其中 numeric_exp 是以弧度表示的角度。

SELECT SIN(RADIANS(90)), POWER(SIN(RADIANS(67)), 2) + POWER(COS(RADIANS(67)), 2) AS pythagorean_identity;

SIN(RADIANS(90))|pythagorean_identity
----------------+--------------------
1.0             |1.0

SINH编辑

语法

SINH(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回 numeric_exp双曲正弦值

SELECT SINH(5), (POWER(E(), 5) - POWER(E(), -5)) / 2 AS "(e^5 - e^-5)/2";

     SINH(5)     | (e^5 - e^-5)/2
-----------------+-----------------
74.20321057778875|74.20321057778874

TAN编辑

语法

TAN(numeric_exp) 

输入:

数字表达式。如果为 null,则函数返回 null

输出:双精度浮点数

描述:返回 numeric_exp正切值,其中 numeric_exp 是以弧度表示的角度。

SELECT TAN(RADIANS(66)) AS "TAN(66)", SIN(RADIANS(66))/COS(RADIANS(66)) AS "SIN(66)/COS(66)=TAN(66)";

     TAN(66)      |SIN(66)/COS(66)=TAN(66)
------------------+-----------------------
2.2460367739042164|2.246036773904216