PostgreSQL 数值函数
PostgreSQL数值函数主要用于数值处理和数学计算。以下表格详细介绍了数值函数 —
序号 | 名称和描述 |
---|---|
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 的绝对值。考虑以下示例 −
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
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()
该函数简单地返回π的值。SQL在内部存储了π的完整双精度值。
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)