本文介绍了PolarDB PostgreSQL版(兼容Oracle)支持的数学函数和操作符。
本数据库为很多类型提供了数学操作符。对于那些没有标准数学表达的类型(如日期/时间类型),我们将在后续小节中描述实际的行为。
数学操作符表显示了可用于标准数字类型的数学操作符。. 除非另有说明, 显示为可接受 numeric_type
的操作符对所有的 smallint
、integer
、bigint
、numeric
、real
和 double precision
类型都可用。 显示为可接受 integral_type
的操作符对 smallint
、integer
和 bigint
类型是可用的。 除了特别说明之处,操作符的每种形式都返回与其参数相同的数据类型。 涉及多个参数数据类型的调用, 例如 integer
+
numeric
,可通过使用这些列表中稍后出现的类型来解析。
数学操作符
加
|
一元加(无操作)
|
减
|
否定
|
乘
|
除(对于整型,除法将结果截断为零)
|
模(取余); 适用于
|
指数(不像典型的数学实践, 多次使用
|
平方根
|
立方根
|
阶乘(已弃用,使用
|
阶乘作为前缀操作符(已弃用,使用
|
绝对值
|
按位与(AND)
|
按位或(OR)
|
按位异或(exclusive OR)
|
按位求反(NOT)
|
按位左移
|
按位右移
|
数学函数表显示了可用的数学函数。 许多这样的函数以多种具有不同的参数类型的形式提供。 除非注明,任何给定形式的函数都返回与其参数相同的数据类型;跨类型情况的解决方法与上述对操作符的解释相同。 使用double precision
数据的函数大多是在主机系统的 C 库上实现的; 因此,边界情况下的准确性和行为会因主机系统的区别而不同。
数学函数
绝对值
|
立方根
|
大于或等于参数的最接近的整数
|
大于或等于参数的最接近的整数(与
|
将弧度转换为角度
|
|
指数(
|
阶乘
|
小于或等于参数的最接近整数
|
最大公约数(能将两个输入数整除而无余数的最大正数); 如果两个输入为零则返回
|
最小公倍数(两个输入的整数倍的最小的严格正数);如果任意一个输入值为零则返回
|
自然对数
|
以10为底的对数
|
以10为底的对数(与
|
以
|
精确表示所提供值所需的最小刻度(小数位数)
|
|
π的近似值
|
|
将角度转换为弧度
|
四舍五入到最近的整数
|
把
|
参数的刻度(小数点后的位数)
|
参数的符号 (-1, 0, 或 +1)
|
平方根
|
通过删除尾数部分的零来降低值的刻度(小数位数)
|
截断整数(向零靠近)
|
截断
|
返回包含
|
返回一个柱号,这个柱是在给定数组中
|
随机函数表展示了用于产生随机数的函数。
随机函数
返回一个范围 0.0 <= x < 1.0 中的随机值
|
为后续的
|
random()
函数使用了一个简单的线性共轭算法。 它的速度很快,但不适合于密码学应用;关于更安全的替代方案,请参阅 pgcrypto 模块。 如果setseed()
被调用,那么当前会话中的一系列后续random()
调用的结果能够通过使用相同的参数重新发布setseed()
来重复。
三角函数表显示了可用的三角函数。 每一种这样的函数都有两个变体,一个以弧度度量角,另一个以角度度量角。
三角函数
反余弦,结果为弧度
|
反余弦,结果为度数
|
反正弦,结果为弧度
|
反正弦,结果为度数
|
反正切,结果为弧度
|
反正切,结果为度数
|
|
|
余弦,参数为弧度
|
余弦,参数为度数
|
余切,参数为弧度
|
余切,参数为度数
|
正弦,参数为弧度
|
正弦,参数为度数
|
正切,参数为弧度
|
正切,参数为度数
|
另一种使用以角度度量的角的方法是使用早前展示的单位转换函数radians()
和degrees()
。不过,使用基于角度的三角函数更好,因为这类方法能避免sind(30)
等特殊情况下的舍入偏差。
双曲函数表显示的是可用的双曲函数。
双曲函数
双曲正弦
|
双曲余弦
|
双曲切线
|
反双曲正弦
|
反双曲余弦
|
反双曲切线
|
PEMAINDER
描述
该函数用于返回n1
除以n2
的余数。
语法
PEMAINDER(n1,n2)
参数
参数 | 说明 |
n1 | 被除数,为数值类型(NUMBER、FLOAT、BINARY_FLOAT 和 BINARY_DOUBLE)表达式。 |
n2 | 除数,为数值类型(NUMBER、FLOAT、BINARY_FLOAT 和 BINARY_DOUBLE)表达式,不能为0。 |
返回类型
返回类型与数值优先级高的参数的数据类型相同。
示例
SELECT REMAINDER(3.5,1);
remainder
-----------
-0.5