更新时间:2024-11-11 GMT+08:00

数字操作函数

abs(x)

描述:绝对值。

返回值类型:和输入相同。

示例:

1
2
3
4
5
SELECT abs(-17.4);
 abs
------
 17.4
(1 row)

acos(x)

描述:反余弦。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT acos(-1);
       acos       
------------------
 3.14159265358979
(1 row)

asin(x)

描述:反正弦。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT asin(0.5);
       asin       
------------------
 .523598775598299
(1 row)

atan(x)

描述:反正切。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT atan(1);
       atan       
------------------
 .785398163397448
(1 row)

atan2(y, x)

描述:y/x的反正切。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT atan2(2, 1);
      atan2
------------------
 1.10714871779409
(1 row)

bitand(integer, integer)

描述:计算两个数字与运算(&)的结果。

返回值类型:bigint

示例:

1
2
3
4
5
SELECT bitand(127, 63);
 bitand 
--------
     63
(1 row)

cbrt(double precision)

描述:立方根。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT cbrt(27.0);
 cbrt
------
    3
(1 row)

ceil(double precision or numeric)

描述:不小于参数的最小的整数。

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

示例:

1
2
3
4
5
SELECT ceil(-42.8);
 ceil 
------
  -42
(1 row)

ceiling(double precision or numeric)

描述:不小于参数的最小整数(ceil的别名)。

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

示例:

1
2
3
4
5
SELECT ceiling(-95.3);
 ceiling
---------
     -95
(1 row)

cos(x)

描述:余弦。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT cos(-3.1415927);
        cos        
-------------------
 -.999999999999999
(1 row)

cot(x)

描述:余切。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT cot(1);
       cot
------------------
 .642092615934331
(1 row)

degrees(double precision)

描述:把弧度转为角度。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT degrees(0.5);
     degrees
------------------
 28.6478897565412
(1 row)

div(y numeric, x numeric)

描述:y除以x的商的整数部分。

返回值类型:numeric

示例:

1
2
3
4
5
SELECT div(9,4);
 div
-----
   2
(1 row)

exp(double precision or numeric)

描述:自然指数。

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

示例:

1
2
3
4
5
SELECT exp(1.0);
        exp         
--------------------
 2.7182818284590452
(1 row)

floor(double precision or numeric)

描述:不大于参数的最大整数。

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

示例:

1
2
3
4
5
SELECT floor(-42.8);
 floor 
-------
   -43
(1 row)

radians(double precision)

描述:把角度转为弧度。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT radians(45.0);
     radians
------------------
 .785398163397448
(1 row)

random()

描述:0.0到1.0之间的随机数。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT random();
      random
------------------
 .824823560658842
(1 row)

rand()

描述:0.0到1.0之间的随机数。此函数为Mysql兼容性函数。该函数仅8.2.0及以上集群版本支持。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT rand();
      rand
------------------
 .824823560658842
(1 row)

ln(double precision or numeric)

描述:自然对数。

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

示例:

1
2
3
4
5
SELECT ln(2.0);
        ln         
-------------------
 .6931471805599453
(1 row)

log(double precision or numeric)

描述:以10为底的对数。

  • ORA和TD兼容模式下,表现为以10为底的对数。
  • MySQL兼容模式下,表现为自然对数。

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

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
-- ORA兼容模式
SELECT log(100.0);
        log         
--------------------
 2.0000000000000000
(1 row)
-- TD兼容模式
SELECT log(100.0);
        log
--------------------
 2.0000000000000000
(1 row)
-- MySQL兼容模式
SELECT log(100.0);
        log
--------------------
 4.6051701859880914
(1 row)

log(b numeric, x numeric)

描述:以b为底的对数。

返回值类型:numeric

示例:

1
2
3
4
5
SELECT log(2.0, 64.0);
        log         
--------------------
 6.0000000000000000
(1 row)

mod(x,y)

描述:x/y的余数(模)。如果x是0,则返回0。如果y是0,则返回x。

返回值类型:与参数类型相同。

示例:

1
2
3
4
5
SELECT mod(9,4);
 mod 
-----
   1
(1 row)
1
2
3
4
5
SELECT mod(9,0);
 mod 
-----
   9
(1 row)

pi()

描述:“π”常量。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT pi();
        pi
------------------
 3.14159265358979
(1 row)

power(a double precision, b double precision)

描述:a的b次幂。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT power(9.0, 3.0);
        power         
----------------------
 729.0000000000000000
(1 row)

round(double precision or numeric)

描述:离输入参数最近的整数。

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

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
SELECT round(42.4);
 round 
-------
    42
(1 row)

SELECT round(42.6);
 round 
-------
    43
(1 row)

当调用round函数时,数值类型将舍入零,而(在大多数计算机上) 实数和双精度型,以最接近的偶数为结果。

round(v numeric, s int)

描述:保留小数点后s位,s后一位进行四舍五入。

返回值类型:numeric

示例:

1
2
3
4
5
SELECT round(42.4382, 2);
 round
-------
 42.44
(1 row)

setseed(double precision)

描述:为随后的random()调用设置种子(-1.0到1.0之间,包含边界值)。

返回值类型:void

示例:

1
2
3
4
5
SELECT setseed(0.54823);
 setseed
---------

(1 row)

sign(double precision or numeric)

描述:输出此参数的符号。

返回值类型:-1表示负数,0表示0,1表示正数。

示例:

1
2
3
4
5
SELECT sign(-8.4);
 sign 
------
   -1
(1 row)

sin(x)

描述:正弦。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT sin(1.57079);
       sin        
------------------
 .999999999979986
(1 row)

sqrt(double precision or numeric)

描述:平方根。

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

示例:

1
2
3
4
5
SELECT sqrt(2.0);
       sqrt        
-------------------
 1.414213562373095
(1 row)

tan(x)

描述:正切。

返回值类型:double precision

示例:

1
2
3
4
5
SELECT tan(20);
       tan        
------------------
 2.23716094422474
(1 row)

trunc(double precision or numeric)

描述:截断(取整数部分)。

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

示例:

1
2
3
4
5
SELECT trunc(42.8);
 trunc 
-------
    42
(1 row)

trunc(v numeric, s int)

描述:截断为s位小数。

返回值类型:numeric

示例:

1
2
3
4
5
SELECT trunc(42.4382, 2);
 trunc
-------
 42.43
(1 row)

truncate(v numeric, s int)

描述:将v截断为s位小数。v除了可以是任意精度型,还可以是整型和浮点型,返回值与入参v类型相同。s为负数时截断整数部分。该函数仅8.2.0及以上集群版本支持。

返回值类型:numeric

示例:

1
2
3
4
5
SELECT trunc(42.4382, 2);
 trunc
-------
 42.43
(1 row)

width_bucket(operand numeric, b1 numeric, b2 numeric, count int)

描述:设定分组范围的最小值、最大值和分组个数,构建指定个数的大小相同的分组,返回指定字段值落入的分组编号。b1为分组范围的最小值,b2为分组范围的最大值,count为分组的个数。

返回值类型:integer

示例:

1
2
3
4
5
SELECT width_bucket(5.35, 0.024, 10.06, 5);
 width_bucket
--------------
            3
(1 row)

width_bucket(operand double precision, b1 double precision, b2 double precision, count int)

描述:设定分组范围的最小值、最大值和分组个数,构建指定个数的大小相同的分组,返回指定字段值落入的分组编号。b1为分组范围的最小值,b2为分组范围的最大值,count为分组的个数。

返回值类型:integer

示例:

1
2
3
4
5
SELECT width_bucket(5.35, 0.024, 10.06, 5);
 width_bucket
--------------
            3
(1 row)