全部产品
云市场

数学函数

更新时间:2019-04-26 14:03:33

  • ABS:求绝对值

  • CBRT:求立方根

  • CEILING/CEIL:向上取整

  • DEGREES:把弧度转化为度

  • E:求自然对数

  • EXP:返回x的自然常数次幂

  • FLOOR:向下取整

  • FROM_BASE:返回radix进制的字符串string代表的数

  • LN:求自然对数

  • LOG2:求以2为底的对数

  • LOG10:求以10位底的对数

  • LOG:返回x以b为底的对数

  • MOD:求余

  • PI:返回pi

  • POWER/POW:返回x的p次幂

  • RADIANS:将角度x以度为单位转换为弧度

  • RANDOM/RAND:随机函数

  • ROUND:返回x四舍五入后的最近的整数值,或者返回x四舍五入到d位小数位的值。

  • SIGN:返回参数X的正负符号,结果可能为-1、0或者1。

  • SQRT:求平方根

  • TO_BASE:返回x的radix进制表示的字符串

  • TRUNCATE:截断函数

  • WIDTH_BUCKET:返回x在区间(最小值为bound1,最大值为bound2)中n等分以后,所在区间的数值。

  • ACOS:求反余弦函数值

  • ASIN:求反正弦函数值

  • ATAN:求反正切函数值

  • ATAN2:参数1除参数2后的反正切值

  • COS:求余弦

  • COSH:求双曲余弦

  • SIN:求正弦值

  • TAN:求正切

  • TANH:求双曲正切

  • COT:求余切函数

  • INFINITY:返回表示正无穷大的常量

  • IS_FINITE:判定x是否有限

  • IS_INFINITE:判定x是否无限

  • IS_NAN:判定x是非法数值

  • NAN:返回代表非数值的常量值

  • CRC32:计算循环冗余校验值,返回一个32位的无符号数值。参数为NULL,则返回结果为NULL。

  • REMAINDER:返回两个参数相除的余数

  • BITAND:返回两个数值型数据按位进行AND运算后的结果。

说明:所有三角函数都是以弧度表示,单位转换请参见DEGREESRADIANS

ABS

  • 命令说明:求绝对值

  • 返回值类型:与输入值类型相同

  • 示例:

    1. select abs(-9);
    2. +-------------+
    3. | _col0 |
    4. +-------------+
    5. | 9 |

CBRT

  1. cbrt(double)
  • 命令说明:求立方根

  • 返回值类型:DOUBLE

  • 示例:

    1. select cbrt(8);
    2. +-------+
    3. | _col0 |
    4. +-------+
    5. | 2.0 |

CEILING/CEIL

  1. ceiling(x)
  • 命令说明:向上取整

  • 返回值类型:LONG

  • 示例:

    1. select ceiling(2.3);
    2. +-------+
    3. | _col0 |
    4. +-------+
    5. | 3 |

DEGREES

  1. degrees(double)
  • 命令说明:把弧度转化为度

  • 返回值类型:DOUBLE

  • 示例:

    1. select degrees(1.3);
    2. +-------------------+
    3. | _col0 |
    4. +-------------------+
    5. | 74.48451336700703 |

E

  1. e();
  • 命令说明:求自然对数

  • 返回值类型:DOUBLE

  • 示例:

    1. select e();
    2. +-------------------+
    3. | _col0 |
    4. +-------------------+
    5. | 2.718281828459045 |

EXP

  1. exp(x);
  • 命令说明:返回x的自然常数次幂

  • 返回值类型:DOUBLE

  • 示例:

    1. select exp(2);
    2. +-------------------+
    3. | _col0 |
    4. +-------------------+
    5. | 7.38905609893065 |

FLOOR

  1. floor(int)
  2. floor(bigint)
  3. floor(double)
  • 命令说明:向下取整

  • 返回值类型:LONG

  • 示例:

    1. select floor(7.8);
    2. +-------+
    3. | _col0 |
    4. +-------+
    5. | 7 |

FROM_BASE

  1. from_base(string, radix);
  • 命令说明:返回radix进制的字符串string代表的数

  • 返回值类型:BIGINT

  • 示例:

    1. SELECT from_base('0110', 2);
    2. +-------+
    3. | _col0 |
    4. +-------+
    5. | 6 |
    6. SELECT from_base('0110', 8);
    7. +-------+
    8. | 72 |
    9. SELECT from_base('00a0', 16);
    10. +-------+
    11. | _col0 |
    12. +-------+
    13. | 160|

LN

  1. ln(double)
  • 命令说明:求自然对数

  • 返回值类型:DOUBLE

  • 示例:

    1. select ln(2.718281828459045);
    2. +-------+
    3. | _col0 |
    4. +-------+
    5. | 1.0 |

LOG2

  1. log2(double)
  • 命令说明:求以2为底的对数

  • 返回值类型:DOUBLE

  • 示例:

    1. select log2(8);
    2. +-------+
    3. | _col0 |
    4. +-------+
    5. | 3.0 |

LOG10

  1. log10(double)
  • 命令说明:求以10位底的对数

  • 返回值类型:DOUBLE

  • 示例:

    1. select log10(100);
    2. +-------+
    3. | _col0 |
    4. +-------+
    5. | 2.0 |

LOG

  1. log(x, b)
  • 命令说明:返回x以b为底的对数

  • 返回值类型:DOUBLE

  • 示例:

    1. select log(10,100);
    2. +-------+
    3. | _col0 |
    4. +-------+
    5. | 2.0 |

MOD

  • 命令说明:求余

  • 示例:

    1. SELECT mod(cast(4.5 as tinyint), 3);
    2. +-------+
    3. | _col0 |
    4. +-------+
    5. | 2 |
    6. SELECT mod(cast(4.5 as smallint), 3);
    7. +-------+
    8. | _col0 |
    9. +-------+
    10. | 2 |
    11. SELECT mod(cast(4.5 as int), 3);
    12. +-------+
    13. | _col0 |
    14. +-------+
    15. | 2 |
    16. SELECT mod(cast(4.5 as bigint), 3);
    17. +-------+
    18. | _col0 |
    19. +-------+
    20. | 2 |
    21. SELECT mod(cast(4.5 as double), 3);
    22. +-------+
    23. | _col0 |
    24. +-------+
    25. | 1.5 |

PI

  1. pi()
  • 命令说明:返回pi

  • 返回值类型:DOUBLE

  • 示例:

    1. select pi();
    2. +-------------------+
    3. | _col0 |
    4. +-------------------+
    5. | 3.141592653589793 |

POWER/POW

  1. power(x, p)
  • 命令说明:返回x的p次幂

  • 返回值类型:DOUBLE

  • 示例:

    1. select power(1.2,3.4);
    2. +-------------------+
    3. | _col0 |
    4. +-------------------+
    5. | 1.858729691979481 |

RADIANS

  1. radians(x)
  • 命令说明:将角度x以度为单位转换为弧度

  • 返回值类型:DOUBLE

  • 示例:

    1. select radians(60.0);
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 1.0471975511965976 |

RANDOM/RAND

  1. random()
  2. random(n)
  • 命令说明:随机函数

  • 返回值类型:DOUBLE

  • 示例:

    1. select random();
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 0.5709993917553757 |
    6. select random(cast(3 as tinyint));
    7. +--------------------+
    8. | _col0 |
    9. +--------------------+
    10. | 2 |
    11. select random(cast(3 as smallint));
    12. +--------------------+
    13. | _col0 |
    14. +--------------------+
    15. | 1 |
    16. select random(cast(3 as int));
    17. +--------------------+
    18. | _col0 |
    19. +--------------------+
    20. | 1 |
    21. select random(cast(3 as bigint));
    22. +--------------------+
    23. | _col0 |
    24. +--------------------+
    25. | 1 |

ROUND

  1. round(x)
  2. round(x, d)
  • 命令说明:返回x四舍五入后的最近的整数值,或者返回x四舍五入到d位小数位的值。

  • 返回值类型:BIGINT或DOUBLE

  • 示例:

    1. SELECT round(cast(4.5 as tinyint), 3);
    2. +-------+
    3. | _col0 |
    4. +-------+
    5. | 5 |
    6. SELECT round(cast(4.5 as smallint), 3);
    7. +-------+
    8. | _col0 |
    9. +-------+
    10. | 5 |
    11. SELECT round(cast(4.5 as int), 3);
    12. +-------+
    13. | _col0 |
    14. +-------+
    15. | 5 |
    16. SELECT round(cast(4.5 as bigint), 3);
    17. +-------+
    18. | _col0 |
    19. +-------+
    20. | 5 |
    21. SELECT round(cast(4.5 as double), 3);
    22. +-------+
    23. | _col0 |
    24. +-------+
    25. | 4.5 |
    26. SELECT round(cast(4.5 as tinyint));
    27. +-------+
    28. | _col0 |
    29. +-------+
    30. | 5 |
    31. SELECT round(cast(4.5 as smallint));
    32. +-------+
    33. | _col0 |
    34. +-------+
    35. | 5 |
    36. SELECT round(cast(4.5 as double));
    37. +-------+
    38. | _col0 |
    39. +-------+
    40. | 5.0 |

SIGN

  1. sign(x)
  • 命令说明:返回参数X的正负符号,结果可能为-1、0或者1

  • 示例:

    1. SELECT sign(0);
    2. +-------+
    3. | _col0 |
    4. +-------+
    5. | 0 |
    6. SELECT sign(34);
    7. +-------+
    8. | _col0 |
    9. +-------+
    10. | 1 |
    11. SELECT sign(-23);
    12. +-------+
    13. | _col0 |
    14. +-------+
    15. | 1 |
    16. SELECT sign(1.023);
    17. +-------+
    18. | _col0 |
    19. +-------+
    20. | 1.0 |
    21. SELECT sign(-1.023);
    22. +-------+
    23. | _col0 |
    24. +-------+
    25. | 1.0 |

SQRT

  1. sqrt(double)
  • 命令说明:求平方根

  • 返回值类型:DOUBLE

  • 示例:

    1. select sqrt(4);
    2. +-------+
    3. | _col0 |
    4. +-------+
    5. | 2.0 |

TO_BASE

  1. to_base(x, radix)
  • 命令说明:返回x的radix进制表示的字符串

  • 返回值类型:VARCHAR

  • 示例:

    1. SELECT to_base(8,8);
    2. +-------+
    3. | _col0 |
    4. +-------+
    5. | 10 |

TRUNCATE

  1. truncate(double)
  • 命令说明:截断函数

  • 返回值类型:DOUBLE

  • 示例:

    1. select truncate(2.3);
    2. +-------+
    3. | _col0 |
    4. +-------+
    5. | 2.0 |
    6. select truncate(2.3456,2);
    7. +--------+
    8. | _col0 |
    9. +--------+
    10. | 2.3400 |
    11. SELECT truncate(cast(4.5 as tinyint), 3);
    12. +-------+
    13. | _col0 |
    14. +-------+
    15. | 5 |
    16. SELECT truncate(cast(4.5 as smallint), 3);
    17. +-------+
    18. | _col0 |
    19. +-------+
    20. | 5 |
    21. SELECT truncate(cast(4.5 as int), 3);
    22. +-------+
    23. | _col0 |
    24. +-------+
    25. | 5 |
    26. SELECT truncate(cast(4.5 as bigint), 3);
    27. +-------+
    28. | _col0 |
    29. +-------+
    30. | 5 |

WIDTH_BUCKET

  1. width_bucket(x, bound1, bound2, n);
  • 命令说明:返回x在区间(最小值为bound1,最大值为bound2)中n等分以后,所在区间的数值。

  • 返回值类型:BIGINT

  • 示例:

    1. SELECT WIDTH_BUCKET(5,3,4,5);
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 6 |

三角函数

所有三角函数都是以弧度表示,单位转换请参见DEGREESRADIANS

ACOS

  1. acos(double)
  • 命令说明:求反余弦函数值

  • 返回值类型:DOUBLE

  • 示例:

    1. select acos(0.5);
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 1.0471975511965979 |

ASIN

  1. asin(double)
  • 命令说明:求反正弦函数值

  • 返回值类型:DOUBLE

  • 示例:

    1. select asin(0.5);
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 0.5235987755982989 |

ATAN

  1. atan(double)
  • 命令说明:求反正切函数值

  • 返回值类型:DOUBLE

  • 示例:

    1. select atan(0.5);
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 0.4636476090008061 |

ATAN2

  1. atan2(double, double)
  • 命令说明:参数1除参数2后的反正切值

  • 返回值类型:DOUBLE

  • 示例:

    1. select atan2(0.5,0.3);
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 1.0303768265243125 |

COS

  1. cos(double)
  • 命令说明:求余弦

  • 返回值类型:DOUBLE

  • 示例:

    1. select cos(1.3);
    2. +---------------------+
    3. | _col0 |
    4. +---------------------+
    5. | 0.26749882862458735 |

COSH

  1. cosh(double)
  • 命令说明:求双曲余弦

  • 返回值类型:DOUBLE

  • 示例:

    1. select cosh(1.3);
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 1.9709142303266285 |

SIN

  1. sin(x);
  • 命令说明:求正弦值

  • 返回值类型:DOUBLE

  • 示例:

    1. select sin(1.3);
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 0.963558185417193 |

TAN

  1. tan(double)
  • 命令说明:求正切

  • 返回值类型:DOUBLE

  • 示例:

    1. select tan(8);
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 6.799711455220379 |

TANH

  1. tanh(double)
  • 命令说明:求双曲正切

  • 返回值类型:DOUBLE

  • 示例:

    1. select tanh(8);
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 0.9999997749296758 |

COT

  1. cot(x);
  • 命令说明:求余切函数

  • 返回值类型:DOUBLE

  • 示例:

    1. SELECT COT(12);
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 1.5726734063976893 |

INFINITY

  • 命令说明:返回表示正无穷大的常量

  • 返回值类型:DOUBLE

IS_FINITE

  • 命令说明:判定x是否有限

  • 返回值类型:BOOLEAN

IS_INFINITE

  • 命令说明:判定x是否无限

  • 返回值类型:BOOLEAN

IS_NAN

  • 命令说明:判定x是非法数值

  • 返回值类型:BOOLEAN

NAN

  • 命令说明:返回代表非数值的常量值

  • 返回值类型:DOUBLE

CRC32

  1. CRC32(expr);
  • 命令说明:计算循环冗余校验值,返回一个32位的无符号数值。参数为NULL,则返回结果为NULL。

  • 返回值类型:DOUBLE

  • 示例:

    1. SELECT CRC32('MySQL');
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 3259397556 |
    6. SELECT CRC32('mysql');
    7. +--------------------+
    8. | _col0 |
    9. +--------------------+
    10. | 2501908538 |

REMAINDER

  1. REMAINDER(n1, n2);
  • 命令说明:返回两个参数相除的余数

  • 返回值类型:DOUBLE/BIGINT

  • 示例:

    1. SELECT REMAINDER(3.5, 2);
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 1.5 |
    6. SELECT REMAINDER(11, 4);
    7. +--------------------+
    8. | _col0 |
    9. +--------------------+
    10. | 4 |

BITAND

  1. BITAND(expr1, expr2);
  • 命令说明:返回两个数值型数据按位进行AND运算后的结果。

    如果函数中任一参数为非整数型,则在按位进行AND运算之前,需要先将参数转换为整数型。

  • 返回值类型:BIGINT

  • 示例:

    1. SELECT BITAND(5, 6);
    2. +--------------------+
    3. | _col0 |
    4. +--------------------+
    5. | 4 |
    6. SELECT BITAND(cast(5.3 as int),cast(6.2 as int));
    7. +--------------------+
    8. | _col0 |
    9. +--------------------+
    10. |4 |