PostgreSQL - 数值函数

PostgreSQL 数值函数主要用于数值操作和/或数学计算。 下表详细说明了数值函数 −

S. No. Name & Description
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()

Returns the value of passed expression converted from degrees to radians.

21 ROUND()

返回四舍五入为整数的数值表达式。 可用于将表达式四舍五入到小数点位数

22 SIN()

返回以弧度给出的数值表达式的正弦值。

23 SQRT()

返回数值表达式的非负平方根。

24 TAN()

返回以弧度表示的数值表达式的正切值。


ABS(X)

ABS() 函数返回 X 的绝对值。考虑以下示例 −

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

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

ACOS(X)

此函数返回 X 的反余弦值。X 的值必须介于 -1 和 1 之间,否则将返回 NULL。 考虑以下示例 −

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

ASIN(X)

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

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

ATAN(X)

此函数返回 X 的反正切。

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

ATAN2(Y,X)

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

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

CEIL(X) / CEILING(X)

这些函数返回不小于 X 的最小整数值。考虑以下示例 −

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

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

COS(X)

该函数返回 X 的余弦值。X 的值以弧度表示。

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

COT(X)

此函数返回 X 的余切。考虑以下示例 −

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

DEGREES(X)

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

testdb=#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 的最大整数值。

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

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

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

testdb=#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() 函数的正确用法和输出 −

testdb=#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 的对数。考虑以下示例 −

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

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

MOD(N,M)

此函数返回 N 除以 M 的余数。考虑以下示例 −

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

PI()

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

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

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

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

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

RADIANS(X)

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

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

ROUND(X) / ROUND(X,D)

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

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

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

SIGN(X)

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

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

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

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

SIN(X)

此函数返回 X 的正弦值。考虑以下示例 −

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

SQRT(X)

此函数返回 X 的非负平方根。考虑以下示例 −

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

TAN(X)

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

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

❮ PostgreSQL 实用函数