Doris--基础--13.1--SQl函数--数学函数

Doris–基础–13.1–SQl函数–数学函数


1、abs(double a)

功能: 返回参数的绝对值
返回类型:double类型
使用说明:使用该函数需要确保函数的返回值是整数。

MySQL [test_db]> select abs(-2);
+---------+
| abs(-2) |
+---------+
|       2 |
+---------+
1 row in set (0.01 sec)

MySQL [test_db]> select abs(2);
+--------+
| abs(2) |
+--------+
|      2 |
+--------+
1 row in set (0.02 sec)


2、acos(double a)

功能: 返回参数的反余弦值
返回类型:double类型
a 值的范围必须在 -1 和 1 之间,否则返回 NULL。

MySQL [test_db]> SELECT ACOS(2),ACOS(1),ACOS(-1);
+-----------+-----------+--------------------+
| acos(2.0) | acos(1.0) | acos(-1.0)         |
+-----------+-----------+--------------------+
|       nan |         0 | 3.1415926535897931 |
+-----------+-----------+--------------------+
1 row in set (0.01 sec)

 

3、asin(double a)

功能: 返回参数的反正弦值
返回类型:double类型

MySQL [test_db]> SELECT ASIN(0.8414709848078965),ASIN(2);
+--------------------------+-----------+
| asin(0.8414709848078965) | asin(2.0) |
+--------------------------+-----------+
|                        1 |       nan |
+--------------------------+-----------+
1 row in set (0.01 sec)

4、atan(double a)

功能: 返回参数的反正切值
返回类型:double类型

MySQL [test_db]> SELECT ATAN(1);
+---------------------+
| atan(1.0)           |
+---------------------+
| 0.78539816339744828 |
+---------------------+
1 row in set (0.01 sec)

5、bin(bigint a)

功能: 返回整型的二进制表示形式(即0 和1 序列)
返回类型:string类型

MySQL [test_db]> select bin(10);
+---------+
| bin(10) |
+---------+
| 1010    |
+---------+
1 row in set (0.01 sec)

6、ceil(double a)/ceiling(double a)/dceil(double a)

功能: 返回大于等于该参数的最小整数
返回类型:int类型

MySQL [test_db]> SELECT CEILING(3.46);
+---------------+
| ceiling(3.46) |
+---------------+
|             4 |
+---------------+
1 row in set (0.00 sec)

7、conv(bigint num, int from_base, int to_base)

功能:
1. 进制转换函数,from_base 进制的 nu,转为 to_base 进制
2. 输入参数可以是整型的字符串形式。
3. 如果想要将函数的返回值转换成整数,可以使用CAST函数。
返回类型:string类型

# 10 进制的 64,转为 8 进制
MySQL [test_db]> select conv(64,10,8);
+-----------------+
| conv(64, 10, 8) |
+-----------------+
| 100             |
+-----------------+
1 row in set (0.01 sec)

# 16 进制的 fe,转为 10 进制
MySQL [test_db]> select cast(conv('fe', 16, 10) as int) as "transform_string_to_int";
+-------------------------+
| transform_string_to_int |
+-------------------------+
|                     254 |
+-------------------------+
1 row in set (0.01 sec)

8、cos(double a)

功能:返回参数的余弦值
返回类型:double类型

MySQL [test_db]> SELECT COS(1),COS(0),COS(PI());
+---------------------+----------+-----------+
| cos(1.0)            | cos(0.0) | cos(pi()) |
+---------------------+----------+-----------+
| 0.54030230586813977 |        1 |        -1 |
+---------------------+----------+-----------+
1 row in set (0.01 sec)

9、degrees(double a)

功能:将弧度转成角度
返回类型:double类型

MySQL [test_db]> SELECT DEGREES(PI());
+---------------+
| degrees(pi()) |
+---------------+
|           180 |
+---------------+
1 row in set (0.01 sec)

10、e()

功能:返回数学上的常量e
返回类型:double类型

MySQL [test_db]> select e();
+--------------------+
| e()                |
+--------------------+
| 2.7182818284590451 |
+--------------------+
1 row in set (0.01 sec)

11、exp(double a)/dexp(double a)

功能: 返回e 的a 次幂(即ea)
返回类型: double 类型

MySQL [test_db]> SELECT EXP(3);
+--------------------+
| exp(3.0)           |
+--------------------+
| 20.085536923187668 |
+--------------------+
1 row in set (0.01 sec)

12、floor(double a)/dfloor(double a)

功能:返回小于等于该参数的最大整数
返回类型:int类型

MySQL [test_db]> SELECT FLOOR(5),FLOOR(5.66),FLOOR(-4),FLOOR(-4.66);
+------------+-------------+-------------+--------------+
| floor(5.0) | floor(5.66) | floor(-4.0) | floor(-4.66) |
+------------+-------------+-------------+--------------+
|          5 |           5 |          -4 |           -5 |
+------------+-------------+-------------+--------------+
1 row in set (0.00 sec)

13、fmod(double a, double b)/fmod(float a, float b)

功能:返回a除以b的余数。等价于%算术符
返回类型:float或者double类型

MySQL [test_db]> select fmod(10,3);
+-----------------+
| fmod(10.0, 3.0) |
+-----------------+
|               1 |
+-----------------+
1 row in set (0.01 sec)

MySQL [test_db]> select fmod(5.5,2);
+----------------+
| fmod(5.5, 2.0) |
+----------------+
|            1.5 |
+----------------+
1 row in set (0.01 sec)

14、greatest(bigint a[, bigint b …])

功能:返回列表里的最大值
返回类型:和参数类型相同

MySQL [test_db]> SELECT GREATEST(3,5,1,8,33,99,34,55,67,43);
+----------------------------------------------+
| greatest(3, 5, 1, 8, 33, 99, 34, 55, 67, 43) |
+----------------------------------------------+
|                                           99 |
+----------------------------------------------+
1 row in set (0.01 sec)

 

15、hex(bigint a)/hex(string a)

功能:返回整型或字符串中各个字符的16进制表示形式。
返回类型:string类型


MySQL [test_db]> select hex('abc');
+------------+
| hex('abc') |
+------------+
| 616263     |
+------------+
1 row in set (0.01 sec)

MySQL [test_db]> select unhex(616263);
+---------------+
| unhex(616263) |
+---------------+
| abc           |
+---------------+
1 row in set (0.01 sec)


16、least(bigint a[, bigint b …])

功能:返回列表里的最小值
返回类型:和参数类型相同

MySQL [test_db]> SELECT LEAST(1, 5, 9) AS 'Result';
+--------+
| Result |
+--------+
|      1 |
+--------+
1 row in set (0.01 sec)


17、ln(double a)/dlog1(double a)

功能:返回参数的自然对数形式
返回类型:double类型

MySQL [test_db]> SELECT ln(2);
+---------------------+
| ln(2.0)             |
+---------------------+
| 0.69314718055994529 |
+---------------------+
1 row in set (0.00 sec)

18、log(double base, double a)

功能:返回log以base为底数,以a为指数的对数值。
返回类型:double类型

MySQL [test_db]> select log(2, 4);
+---------------+
| log(2.0, 4.0) |
+---------------+
|             2 |
+---------------+
1 row in set (0.01 sec)

MySQL [test_db]> select log(2, 8);
+---------------+
| log(2.0, 8.0) |
+---------------+
|             3 |
+---------------+
1 row in set (0.01 sec)


 

19、log10(double a)/dlog10(double a)

功能:返回log以10为底数,以a为指数的对数值。
返回类型:double类型

MySQL [test_db]> SELECT LOG10(100);
+--------------+
| log10(100.0) |
+--------------+
|            2 |
+--------------+
1 row in set (0.00 sec)

20、log2(double a)

功能:返回log以2为底数,以a为指数的对数值。
返回类型:double类型

MySQL [test_db]> SELECT log2(64);   
+------------+
| log2(64.0) |
+------------+
|          6 |
+------------+
1 row in set (0.01 sec)
 

21、mod(numeric_type a, same_type b)

功能:返回a除以b的余数。等价于%算术符。
返回类型:和输入类型相同

MySQL [test_db]> select mod(10,3);
+------------+
| mod(10, 3) |
+------------+
|          1 |
+------------+
1 row in set (0.01 sec)

MySQL [test_db]> select mod(5.5,2); 
+-------------+
| mod(5.5, 2) |
+-------------+
|         1.5 |
+-------------+
1 row in set (0.01 sec)

22、negative(int a)/negative(double a)

功能:将参数a的符号位取反,如果参数是负值,则返回正值
返回类型:根据输入参数类型返回int类型或double类型
使用说明:如果你需要确保所有返回值都是负值,可以使用-abs(a)函数。

MySQL [test_db]> select negative(2);
+-------------+
| negative(2) |
+-------------+
|          -2 |
+-------------+
1 row in set (0.01 sec)

23、pi()

功能:返回常量Pi
返回类型: double类型

MySQL [test_db]> select pi();
+--------------------+
| pi()               |
+--------------------+
| 3.1415926535897931 |
+--------------------+
1 row in set (0.01 sec)

24、pmod(int a, int b)/pmod(double a, double b)

功能:正取余函数
返回类型:int类型或者double类型(由输入参数决定)

MySQL [test_db]> SELECT PMOD(13,5);
+-------------+
| pmod(13, 5) |
+-------------+
|           3 |
+-------------+
1 row in set (0.01 sec)

MySQL [test_db]> SELECT PMOD(-13,5);
+--------------+
| pmod(-13, 5) |
+--------------+
|            2 |
+--------------+
1 row in set (0.01 sec)



25、pow(double a, double p)/power(double a, double p)

功能:返回a的p次幂
返回类型:double类型

MySQL [test_db]> select pow(2,3);
+---------------+
| pow(2.0, 3.0) |
+---------------+
|             8 |
+---------------+
1 row in set (0.01 sec)

26、positive(int a)

功能:返回参数的原值,即使参数是负的,仍然返回原值。
返回类型:int类型
使用说明:如果你需要确保所有返回值都是正值,可以使用abs()函数。

MySQL [test_db]> select positive(2);
+-------------+
| positive(2) |
+-------------+
|           2 |
+-------------+
1 row in set (0.01 sec)

27、radians(double a)

功能:将弧度转换成角度
返回类型:double类型
这个函数返回a的弧度值,从度转换为弧度。

MySQL [test_db]> select radians(2);
+----------------------+
| radians(2.0)         |
+----------------------+
| 0.034906585039886591 |
+----------------------+
1 row in set (0.01 sec)


28、rand()/rand(int seed)/random()/random(int seed)

功能:返回0~1之间的随机值。参数为随机种子。
返回类型:double
使用说明:每次查询的随机序列都会重置,多次调用rand 函数会产生相同的结果。如果每次查询想产生不同的结果,可以在每次查询时使用不同的随机种子。例如select rand(unix_timestamp()) from …

MySQL [test_db]> SELECT RAND(1), RAND( ), RAND( );
+---------------------+----------------------+---------------------+
| rand(1)             | rand()               | rand()              |
+---------------------+----------------------+---------------------+
| 0.13387664401253274 | 0.090267104865521045 | 0.82818351090400344 |
+---------------------+----------------------+---------------------+
1 row in set (0.01 sec)

29、round(double a)/round(double a, int d)

功能: 取整函数。如果只带一个参数,该函数会返回距离该值最近的整数。如果带2个参数,第二个参数为小数点后面保留的位数。
返回类型:如果参数是浮点类型则返回bigint。如果第二个参数大于1,则返回double类型。

MySQL [test_db]> select round(100.456, 2);
+-------------------+
| round(100.456, 2) |
+-------------------+
|            100.46 |
+-------------------+
1 row in set (0.01 sec)


30、sign(double a)

功能:如果a是整数或者0,返回1;如果a是负数,则返回-1
返回类型:int类型

MySQL [test_db]> select sign(3.0);
+-----------+
| sign(3.0) |
+-----------+
|         1 |
+-----------+
1 row in set (0.00 sec)

31、sin(double a)

功能:返回a的正弦值
返回类型:double类型

MySQL [test_db]> select sin(2);
+---------------------+
| sin(2.0)            |
+---------------------+
| 0.90929742682568171 |
+---------------------+
1 row in set (0.01 sec)

32、sqrt(double a)

功能:返回a的平方根
返回类型:double类型

MySQL [test_db]> select sqrt(2);
+--------------------+
| sqrt(2.0)          |
+--------------------+
| 1.4142135623730951 |
+--------------------+
1 row in set (0.00 sec)

33、tan(double a)

功能:返回a的正切值
返回类型:double类型

MySQL [test_db]> select tan(1.2);
+--------------------+
| tan(1.2)           |
+--------------------+
| 2.5721516221263188 |
+--------------------+
1 row in set (0.01 sec)

34、unhex(string a)

功能:把十六进制格式的字符串转化为原来的格式
返回类型:string类型


MySQL [test_db]> select hex('abc');
+------------+
| hex('abc') |
+------------+
| 616263     |
+------------+
1 row in set (0.01 sec)

MySQL [test_db]> select unhex(616263);
+---------------+
| unhex(616263) |
+---------------+
| abc           |
+---------------+
1 row in set (0.01 sec)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值