数字操作函数和操作符
数字操作符
- +
示例:
1 2 3 4 5
openGauss=# SELECT 2+3 AS RESULT; result -------- 5 (1 row)
- -
示例:
1 2 3 4 5
openGauss=# SELECT 2-3 AS RESULT; result -------- -1 (1 row)
- *
示例:
1 2 3 4 5
openGauss=# SELECT 2*3 AS RESULT; result -------- 6 (1 row)
- /
示例:
1 2 3 4 5
openGauss=# SELECT 4/2 AS RESULT; result -------- 2 (1 row)
1 2 3 4 5
openGauss=# SELECT 4/3 AS RESULT; result ------------------ 1.33333333333333 (1 row)
- +/-
示例:
1 2 3 4 5
openGauss=# SELECT -2 AS RESULT; result -------- -2 (1 row)
- %
示例:
1 2 3 4 5
openGauss=# SELECT 5%4 AS RESULT; result -------- 1 (1 row)
- @
示例:
1 2 3 4 5
openGauss=# SELECT @ -5.0 AS RESULT; result -------- 5.0 (1 row)
- ^
示例:
1 2 3 4 5
openGauss=# SELECT 2.0^3.0 AS RESULT; result -------------------- 8.0000000000000000 (1 row)
- |/
示例:
1 2 3 4 5
openGauss=# SELECT |/ 25.0 AS RESULT; result -------- 5 (1 row)
- ||/
示例:
1 2 3 4 5
openGauss=# SELECT ||/ 27.0 AS RESULT; result -------- 3 (1 row)
- !
示例:
1 2 3 4 5
openGauss=# SELECT 5! AS RESULT; result -------- 120 (1 row)
- !!
示例:
1 2 3 4 5
openGauss=# SELECT !!5 AS RESULT; result -------- 120 (1 row)
- &
示例:
1 2 3 4 5
openGauss=# SELECT 91&15 AS RESULT; result -------- 11 (1 row)
- |
示例:
1 2 3 4 5
openGauss=# SELECT 32|3 AS RESULT; result -------- 35 (1 row)
- #
示例:
1 2 3 4 5
openGauss=# SELECT 17#5 AS RESULT; result -------- 20 (1 row)
- ~
示例:
1 2 3 4 5
openGauss=# SELECT ~1 AS RESULT; result -------- -2 (1 row)
- <<
示例:
1 2 3 4 5
openGauss=# SELECT 1<<4 AS RESULT; result -------- 16 (1 row)
- >>
示例:
1 2 3 4 5
openGauss=# SELECT 8>>2 AS RESULT; result -------- 2 (1 row)
数字操作函数
- abs(x)
返回值类型:和输入相同。
示例:
1 2 3 4 5
openGauss=# SELECT abs(-17.4); abs ------ 17.4 (1 row)
- acos(x)
返回值类型:double precision
示例:
1 2 3 4 5
openGauss=# SELECT acos(-1); acos ------------------ 3.14159265358979 (1 row)
- asin(x)
返回值类型:double precision
示例:
1 2 3 4 5
openGauss=# SELECT asin(0.5); asin ------------------ .523598775598299 (1 row)
- atan(x)
返回值类型:double precision
示例:
1 2 3 4 5
openGauss=# SELECT atan(1); atan ------------------ .785398163397448 (1 row)
- atan2(y, x)
返回值类型:double precision
示例:
1 2 3 4 5
openGauss=# SELECT atan2(2, 1); atan2 ------------------ 1.10714871779409 (1 row)
- bitand(integer, integer)
返回值类型:bigint类型数字。
示例:
1 2 3 4 5
openGauss=# SELECT bitand(127, 63); bitand -------- 63 (1 row)
- cbrt(dp)
返回值类型:double precision
示例:
1 2 3 4 5
openGauss=# SELECT cbrt(27.0); cbrt ------ 3 (1 row)
- ceil(x)
返回值类型:整数。
示例:
1 2 3 4 5
openGauss=# SELECT ceil(-42.8); ceil ------ -42 (1 row)
- ceiling(dp or numeric)
返回值类型:dp or numeric,不考虑隐式类型转换的情况下与输入相同。
示例:
1 2 3 4 5
openGauss=# SELECT ceiling(-95.3); ceiling --------- -95 (1 row)
- cos(x)
返回值类型:double precision
示例:
1 2 3 4 5
openGauss=# SELECT cos(-3.1415927); cos ------------------- -.999999999999999 (1 row)
- cot(x)
返回值类型:double precision
示例:
1 2 3 4 5
openGauss=# SELECT cot(1); cot ------------------ .642092615934331 (1 row)
- degrees(dp)
返回值类型:double precision
示例:
1 2 3 4 5
openGauss=# SELECT degrees(0.5); degrees ------------------ 28.6478897565412 (1 row)
- div(y numeric, x numeric)
返回值类型:numeric
示例:
1 2 3 4 5
openGauss=# SELECT div(9,4); div ----- 2 (1 row)
- exp(x)
返回值类型:dp or numeric,不考虑隐式类型转换的情况下与输入相同。
示例:
1 2 3 4 5
openGauss=# SELECT exp(1.0); exp -------------------- 2.7182818284590452 (1 row)
- floor(x)
返回值类型:与输入相同。
示例:
1 2 3 4 5
openGauss=# SELECT floor(-42.8); floor ------- -43 (1 row)
- int1(in)
返回值类型:int1
示例:
1 2 3 4 5 6 7 8 9 10
openGauss=# select int1('123'); int1 ------ 123 (1 row) openGauss=# select int1('a'); int1 ------ 0 (1 row)
- int2(in)
支持的入参类型包括float4,float8,int16,numeric,text。
返回值类型:int2
示例:
1 2 3 4 5 6 7 8 9 10
openGauss=# select int2('1234'); int2 ------ 1234 (1 row) openGauss=# select int2(25.3); int2 ------ 25 (1 row)
- int4(in)
支持的入参类型包括bit,boolean,char,duoble precision,int16,numeric,real,smallint,text。
返回值类型:int4
示例:
1 2 3 4 5 6 7 8 9 10
openGauss=# select int4('789'); int4 ------ 789 (1 row) openGauss=# select int4(99.9); int4 ------ 99 (1 row)
- float4(in)
描述:将传入参数转换为float4类型值并返回。支持的入参类型包括:bigint,duoble precision,int16, integer, numeric,smallint,text。
返回值类型:float4
示例:
1 2 3 4 5 6 7 8 9 10 11
openGauss=# select float4('789'); float4 -------- 789 (1 row) openGauss=# select float4(99.9); float4 -------- 99.9 (1 row)
- float8(in)
描述:将传入参数转换为float8类型值并返回。支持的入参类型包括:bigint,int16, integer, numeric,real,smallint,text。
返回值类型:float8
示例:
1 2 3 4 5 6 7 8 9 10 11
openGauss=# select float8('789'); float8 -------- 789 (1 row) openGauss=# select float8(99.9); float8 -------- 99.9 (1 row)
- int16(in)
描述:将传入参数转换为int16类型值并返回。支持的入参类型包括:bigint,boolean,double precision,integer,numeric,oid,real,smallint,tinyint。
返回值类型:int16
示例:
1 2 3 4 5 6 7 8 9 10 11
openGauss=# select int16('789'); int16 -------- 789 (1 row) openGauss=# select int16(99.9); int16 -------- 99 (1 row)
- numeric(in)
描述:将传入参数转换为numeric类型值并返回。支持的入参类型包括:bigint,boolean,double precision,int16,integer,money,real,smallint。
返回值类型:numeric
示例:
1 2 3 4 5 6 7 8 9 10 11
openGauss=# select "numeric"('789'); numeric --------- 789 (1 row) openGauss=# select "numeric"(99.9); numeric --------- 99.9 (1 row)
- oid(in)
描述:将传入参数转换为oid类型值并返回。支持的入参类型包括:bigint,int16。
返回值类型:oid
- radians(dp)
返回值类型:double precision
示例:
1 2 3 4 5
openGauss=# SELECT radians(45.0); radians ------------------ .785398163397448 (1 row)
- random()
返回值类型:double precision
示例:
1 2 3 4 5
openGauss=# SELECT random(); random ------------------ .824823560658842 (1 row)
- multiply(x double precision or text, y double precision or text)
返回值类型:double precision
示例:
1 2 3 4 5 6 7 8 9 10
openGauss=# SELECT multiply(9.0, '3.0'); multiply ------------------- 27 (1 row) openGauss=# SELECT multiply('9.0', 3.0); multiply ------------------- 27 (1 row)
- ln(x)
返回值类型:dp or numeric,不考虑隐式类型转换的情况下与输入相同。
示例:
1 2 3 4 5
openGauss=# SELECT ln(2.0); ln ------------------- .6931471805599453 (1 row)
- log(x)
返回值类型:与输入相同。
示例:
1 2 3 4 5
openGauss=# SELECT log(100.0); log -------------------- 2.0000000000000000 (1 row)
- log(b numeric, x numeric)
返回值类型:numeric
示例:
1 2 3 4 5
openGauss=# SELECT log(2.0, 64.0); log -------------------- 6.0000000000000000 (1 row)
- mod(x,y)
返回值类型:与参数类型相同。
示例:
1 2 3 4 5
openGauss=# SELECT mod(9,4); mod ----- 1 (1 row)
1 2 3 4 5
openGauss=# SELECT mod(9,0); mod ----- 9 (1 row)
- pi()
返回值类型:double precision
示例:
1 2 3 4 5
openGauss=# SELECT pi(); pi ------------------ 3.14159265358979 (1 row)
- power(a double precision, b double precision)
返回值类型:double precision
示例:
1 2 3 4 5
openGauss=# SELECT power(9.0, 3.0); power ---------------------- 729.0000000000000000 (1 row)
- round(x)
返回值类型:与输入相同。
示例:
1 2 3 4 5 6 7 8 9 10 11
openGauss=# SELECT round(42.4); round ------- 42 (1 row) openGauss=# SELECT round(42.6); round ------- 43 (1 row)
- round(v numeric, s int)
返回值类型:numeric
示例:
1 2 3 4 5
openGauss=# SELECT round(42.4382, 2); round ------- 42.44 (1 row)
- setseed(dp)
描述:为随后的random()调用设置种子(-1.0到1.0之间,包含)。
返回值类型:void
示例:
1 2 3 4 5
openGauss=# SELECT setseed(0.54823); setseed --------- (1 row)
- sign(x)
返回值类型:-1表示负数,0表示0,1表示正数。
示例:
1 2 3 4 5
openGauss=# SELECT sign(-8.4); sign ------ -1 (1 row)
- sin(x)
返回值类型:double precision
示例:
1 2 3 4 5
openGauss=# SELECT sin(1.57079); sin ------------------ .999999999979986 (1 row)
- sqrt(x)
返回值类型:dp or numeric,不考虑隐式类型转换的情况下与输入相同。
示例:
1 2 3 4 5
openGauss=# SELECT sqrt(2.0); sqrt ------------------- 1.414213562373095 (1 row)
- tan(x)
返回值类型:double precision
示例:
1 2 3 4 5
openGauss=# SELECT tan(20); tan ------------------ 2.23716094422474 (1 row)
- trunc(x)
返回值类型:与输入相同。
示例:
1 2 3 4 5
openGauss=# SELECT trunc(42.8); trunc ------- 42 (1 row)
- trunc(v numeric, s int)
返回值类型:numeric
示例:
1 2 3 4 5
openGauss=# SELECT trunc(42.4382, 2); trunc ------- 42.43 (1 row)
- smgrne(a smgr, b smgr)
返回值类型:bool
- smgreq(a smgr, b smgr)
返回值类型:bool
- int1abs
参数:tinyint
返回值类型:tinyint
- int1and
参数:tinyint, tinyint
返回值类型:tinyint
- int1cmp
描述:返回两个uint8类型数据比较的结果,若第一个参数大,则返回1;若第二个参数大,则返回-1;若相等,则返回0。
参数:tinyint, tinyint
返回值类型:integer
- int1div
描述:返回两个uint8类型数据相除的结果,结果为float8类型。
参数:tinyint, tinyint
返回值类型:tinyint
- int1eq
参数:tinyint, tinyint
返回值类型:boolean
- int1ge
描述:判断两个uint8类型数据是否第一个参数大于等于第二个参数。
参数:tinyint, tinyint
返回值类型:boolean
- int1gt
参数:tinyint, tinyint
返回值类型:boolean
- int1larger
参数:tinyint, tinyint
返回值类型:tinyint
- int1le
参数:tinyint, tinyint
返回值类型:boolean
- int1lt
参数:tinyint, tinyint
返回值类型:boolean
- int1smaller
参数:tinyint, tinyint
返回值类型:tinyint
- int1inc
参数:tinyint
返回值类型:tinyint
- int1mi
参数:tinyint, tinyint
返回值类型:tinyint
- int1mod
参数:tinyint, tinyint
返回值类型:tinyint
- int1mul
参数:tinyint, tinyint
返回值类型:tinyint
- int1ne
参数:tinyint, tinyint
返回值类型:boolean
- int1pl
参数:tinyint, tinyint
返回值类型:tinyint
- int1um
参数:tinyint
返回值类型:smallint
- int1xor
参数:tinyint, tinyint
返回值类型:tinyint
- cash_div_int1
参数:money, tinyint
返回值类型:money
- cash_mul_int1
参数:money, tinyint
返回值类型:money
- int1not
参数:tinyint
返回值类型:tinyint
- int1or
参数:tinyint, tinyint
返回值类型:tinyint
- int1shl
参数:tinyint, integer
返回值类型:tinyint
- int1shr
参数:tinyint, integer
返回值类型:tinyint
- width_bucket(op numeric, b1 numeric, b2 numeric, count int)
描述:返回一个桶,这个桶是在一个有count个桶,上界为b1下界为b2的等深柱图中operand将被赋予的那个桶。
返回值类型:int
示例:
1 2 3 4 5
openGauss=# SELECT width_bucket(5.35, 0.024, 10.06, 5); width_bucket -------------- 3 (1 row)
- width_bucket(op dp, b1 dp, b2 dp, count int)
描述:返回一个桶,这个桶是在一个有count个桶,上界为b1下界为b2的等深柱图中operand将被赋予的那个桶。
返回值类型:int
示例:
1 2 3 4 5
openGauss=# SELECT width_bucket(5.35, 0.024, 10.06, 5); width_bucket -------------- 3 (1 row)