PostgreSQL Numeric(数值)函数

返回 PostgreSQL 常用对象


PostgreSQL 数值函数主要用于数值操作和/或数学计算。下表详细介绍了 Numeric 函数

序号 函数 描述
1 ABS() 返回数值表达式的绝对值。
2 ACOS() 返回数值表达式的反余弦值。如果值不在 -1 到 1 的范围内,则返回 NULL。
3 ASIN() 返回数值表达式的反正弦。如果值不在 -1 到 1 的范围内,则返回 NULL
4 ATAN() 返回数值表达式的反正切。
5 ATAN2() 返回传递给它的两个变量的反正切。
6 CEIL() 返回不小于参数数值表达式的最小整数值
7 CEILING() 返回不小于参数数值表达式的最小整数值
8 COS() 返回参数数值表达式的余弦。数值表达式应以弧度表示。
9 COT() 返回参数数值表达式的余切。
10 DEGREES() 返回从弧度转换为度数的数值表达式。
11 EXP() 返回自然对数 (e) 的底数,以传递的数值表达式的幂。
12 FLOOR() 返回不大于参数数值表达式的最大整数值。
13 GREATEST() 返回输入表达式的最大值。
14 LEAST() 当给定两个或更多数据时,返回最小值。
15 LOG() 返回参数数值表达式的自然对数。
16 MOD() 通过除以另一个表达式返回一个表达式的余数部分。
17 PI() 返回 pi 的值
18 POW() 返回以第一个参数为底,第二个参数为指数的幂
19 POWER() 返回幂值
20 RADIANS() 返回从度数转换为弧度的传递表达式的值。
21 ROUND() 回四舍五入为整数的数值表达式。也可用于保留几位小数。
22 SIN() 返回以弧度给出的数值表达式的正弦值。
23 SQRT() 返回数值表达式的非负平方根。
24 TAN() 返回以弧度表示的数值表达式的正切值。

下面我们来看一下这些函数的示例


ABS(X)

ABS() 函数返回 X 的绝对值。

jiyik_db=# SELECT ABS(2);
+---------------------------------------------------------+
| ABS(2)                                                  |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

jiyik_db=# SELECT ABS(-2);
+---------------------------------------------------------+
| ABS(2)                                                  |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ACOS(X)

此函数返回 X 的反余弦值。 X 的值必须介于 -1 和 1 之间,否则将返回 NULL。

jiyik_db=# SELECT ACOS(1);
+---------------------------------------------------------+
| ACOS(1)                                                 |
+---------------------------------------------------------+
| 0.000000                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ASIN(X)

ASIN() 函数返回 X 的反正弦值。 X 的值必须在 -1 到 1 的范围内,否则返回 NULL。

jiyik_db=# SELECT ASIN(1);
+---------------------------------------------------------+
| ASIN(1)                                                 |
+---------------------------------------------------------+
| 1.5707963267949                                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ATAN(X)

此函数返回 X 的反正切值。

jiyik_db=# SELECT ATAN(1);
+---------------------------------------------------------+
| ATAN(1)                                                 |
+---------------------------------------------------------+
| 0.78539816339745                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ATAN2(Y,X)

此函数返回两个参数的反正切值:X 和 Y。它类似于 Y/X 的反正切,除了两者的符号用于查找结果的象限。

jiyik_db=# SELECT ATAN2(3,6);
+---------------------------------------------------------+
| ATAN2(3,6)                                              |
+---------------------------------------------------------+
| 0.46364760900081                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CEIL(X) / CEILING(X)

这些函数返回不小于 X 的最小整数值。

jiyik_db=# SELECT CEILING(3.46);
+---------------------------------------------------------+
| CEILING(3.46)                                           |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

jiyik_db=# SELECT CEIL(-6.43);
+---------------------------------------------------------+
| CEIL(-6.43)                                             |
+---------------------------------------------------------+
| -6                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

COS(X)

此函数返回 X 的余弦值。 X 的值以弧度给出。

jiyik_db=#SELECT COS(90);
+---------------------------------------------------------+
| COS(90)                                                 |
+---------------------------------------------------------+
| -0.44807361612917                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

COT(X)

此函数返回 X 的余切。

jiyik_db=#SELECT COT(1);
+---------------------------------------------------------+
| COT(1)                                                  |
+---------------------------------------------------------+
| 0.64209261593433                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DEGREES(X)

此函数返回从弧度转换为度数的 X 值。

jiyik_db=#SELECT DEGREES(PI());
+---------------------------------------------------------+
| DEGREES(PI())                                           |
+---------------------------------------------------------+
| 180.000000                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

EXP(X)

此函数返回 e 的值(自然对数的底数)的 X 次幂。

testdb=#SELECT EXP(3);
+---------------------------------------------------------+
| EXP(3)                                                  |
+---------------------------------------------------------+
| 20.085537                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

FLOOR(X)

此函数返回不大于 X 的最大整数值。

jiyik_db=#SELECT FLOOR(7.55);
+---------------------------------------------------------+
| FLOOR(7.55)                                             |
+---------------------------------------------------------+
| 7                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

GREATEST(n1,n2,n3,..........)

GREATEST() 函数返回输入参数组(n1、n2、n3 等)中的最大值。以下示例使用 GREATEST() 函数返回一组数值中的最大数

jiyik_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.00 sec)

LEAST(N1,N2,N3,N4,......)

LEAST() 函数与 GREATEST() 函数相反。其目的是从值列表(N1、N2、N3 等)中返回值最小的项。以下示例显示了 LEAST() 函数的正确用法和输出

jiyik_db=#SELECT LEAST(3,5,1,8,33,99,34,55,67,43);
+---------------------------------------------------------+
| LEAST(3,5,1,8,33,99,34,55,67,43)                        |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LOG(X) / LOG(B,X)

该函数的单参数版本将返回 X 的自然对数。如果使用两个参数调用它,它将返回任意基数 B 的 X 的对数。

jiyik_db=#SELECT LOG(45);
+---------------------------------------------------------+
| LOG(45)                                                 |
+---------------------------------------------------------+
| 1.65321251377534                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

jiyik_db=#SELECT LOG(2,65536);
+---------------------------------------------------------+
| LOG(2,65536)                                            |
+---------------------------------------------------------+
| 16.000000                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MOD(N,M)

此函数返回 N 除以 M 的余数。

jiyik_db=#SELECT MOD(29,3);
+---------------------------------------------------------+
| MOD(29,3)                                               |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

PI()

此函数仅返回 pi 的值。SQL 在内部存储 pi 的完整双精度值。

jiyik_db=#SELECT PI();
+---------------------------------------------------------+
| PI()                                                    |
+---------------------------------------------------------+
| 3.141593                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

POW(X,Y) / POWER(X,Y)

这两个函数返回 X 的 Y 次幂值。

jiyik_db=# SELECT POWER(3,3);
+---------------------------------------------------------+
| POWER(3,3)                                              |
+---------------------------------------------------------+
| 27                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

RADIANS(X)

此函数返回 X 的值,从度数转换为弧度。

jiyik_db=#SELECT RADIANS(90);
+---------------------------------------------------------+
| RADIANS(90)                                             |
+---------------------------------------------------------+
|1.570796                                                 |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ROUND(X) / ROUND(X,D)

此函数返回 X 舍入到最接近的整数。如果提供了第二个参数 D,则该函数返回 X 舍入到 D 位小数。D 必须为正数,否则小数点右侧的所有数字都将被删除。

jiyik_db=#SELECT ROUND(5.693893);
+---------------------------------------------------------+
| ROUND(5.693893)                                         |
+---------------------------------------------------------+
| 6                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

jiyik_db=#SELECT ROUND(5.693893,2);
+---------------------------------------------------------+
| ROUND(5.693893,2)                                       |
+---------------------------------------------------------+
| 5.69                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SIGN(X)

此函数将 X 的符号(负、零或正)返回为 -1、0 或 1。

jiyik_db=#SELECT SIGN(-4.65);
+---------------------------------------------------------+
| SIGN(-4.65)                                             |
+---------------------------------------------------------+
| -1                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

jiyik_db=#SELECT SIGN(0);
+---------------------------------------------------------+
| SIGN(0)                                                 |
+---------------------------------------------------------+
| 0                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

jiyik_db=#SELECT SIGN(4.65);
+---------------------------------------------------------+
| SIGN(4.65)                                              |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SIN(X)

此函数返回 X 的正弦值。

jiyik_db=#SELECT SIN(90);
+---------------------------------------------------------+
| SIN(90)                                                 |
+---------------------------------------------------------+
| 0.893997                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SQRT(X)

此函数返回 X 的非负平方根。

jiyik_db=#SELECT SQRT(49);
+---------------------------------------------------------+
| SQRT(49)                                                |
+---------------------------------------------------------+
| 7                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TAN(X)

此函数返回参数 X 的正切值,以弧度表示。

jiyik_db=#SELECT TAN(45);
+---------------------------------------------------------+
| TAN(45)                                                 |
+---------------------------------------------------------+
| 1.619775                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

返回 PostgreSQL 常用对象

查看笔记

扫码一下
查看教程更方便