# 数字操作函数和操作符
#### 数字操作符
- + 描述：加。
  示例：
  ```
  gaussdb=# SELECT 2+3 AS RESULT;
   result 
  --------
        5
  (1 row)
  ```
  
- - 描述：减。
  示例：
  ```
  gaussdb=# SELECT 2-3 AS RESULT;
   result 
  --------
       -1
  (1 row)
  ```
  
- \* 描述：乘。
  示例：
  ```
  gaussdb=# SELECT 2*3 AS RESULT;
   result 
  --------
        6
  (1 row)
  ```
  
- / 描述：除（除法操作符不会取整）。
  示例：
  ```
  gaussdb=# SELECT 4/2 AS RESULT;
   result 
  --------
        2
  (1 row)
  ```
  ```
  gaussdb=# SELECT 4/3 AS RESULT;
        result      
  ------------------
   1.33333333333333
  (1 row)
  ```
  
- +/- 描述：正/负。
  示例：
  ```
  gaussdb=# SELECT -2 AS RESULT;
   result 
  --------
       -2
  (1 row)
  ```
  
- % 描述：模（求余）。
  示例：
  ```
  gaussdb=# SELECT 5%4 AS RESULT;
   result 
  --------
        1
  (1 row)
  ```
  
- @ 描述：绝对值。
  示例：
  ```
  gaussdb=# SELECT @ -5.0 AS RESULT;
   result 
  --------
      5.0
  (1 row)
  ```
  
- \^ 描述：幂（指数运算）。
  示例：
  ```
  gaussdb=# SELECT 2.0^3.0 AS RESULT;
         result       
  --------------------
   8.0000000000000000
  (1 row)
  ```
  
- \|/ 描述：平方根。
  示例：
  ```
  gaussdb=# SELECT |/ 25.0 AS RESULT;
   result 
  --------
        5
  (1 row)
  ```
  
- \|\|/ 描述：立方根。
  示例：
  ```
  gaussdb=# SELECT ||/ 27.0 AS RESULT;
   result 
  --------
        3
  (1 row)
  ```
  
- ! 描述：阶乘。
  示例：
  ```
  gaussdb=# SELECT 5! AS RESULT;
   result 
  --------
      120
  (1 row)
  ```
  
- !! 描述：阶乘（前缀操作符）。
  示例：
  ```
  gaussdb=# SELECT !!5 AS RESULT;
   result 
  --------
      120
  (1 row)
  ```
  
- \& 描述：二进制AND。
  示例：
  ```
  gaussdb=# SELECT 91&15  AS RESULT;
   result 
  --------
       11
  (1 row)
  ```
  
- \| 描述：二进制OR。
  示例：
  ```
  gaussdb=# SELECT 32|3  AS RESULT;
   result 
  --------
       35
  (1 row)
  ```
  
- # 描述：二进制XOR。
  示例：
  ```
  gaussdb=# SELECT 17#5  AS RESULT;
   result 
  --------
       20
  (1 row)
  ```
  
- \~ 描述：二进制NOT。
  示例：
  ```
  gaussdb=# SELECT ~1 AS RESULT;
   result 
  --------
       -2
  (1 row)
  ```
  
- \<\< 描述：二进制左移。
  示例：
  ```
  gaussdb=# SELECT 1<<4 AS RESULT;
   result 
  --------
       16
  (1 row)
  ```
  
- \>\> 描述：二进制右移。
  示例：
  ```
  gaussdb=# SELECT 8>>2 AS RESULT;
   result 
  --------
        2
  (1 row)
  ```
  
 
#### 数字操作函数
- abs(x) 描述：绝对值。
  返回值类型：和输入相同。
  示例：
  ```
  gaussdb=# SELECT abs(-17.4);
   abs
  ------
   17.4
  (1 row)
  ```
  
- acos(x) 描述：反余弦。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT acos(-1);
         acos       
  ------------------
   3.14159265358979
  (1 row)
  ```
  
- asin(x) 描述：反正弦。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT asin(0.5);
         asin       
  ------------------
   .523598775598299
  (1 row)
  ```
  
- atan(x) 描述：反正切。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT atan(1);
         atan       
  ------------------
   .785398163397448
  (1 row)
  ```
  
- atan2(y, x) 描述：y/x的反正切。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT atan2(2, 1);
        atan2
  ------------------
   1.10714871779409
  (1 row)
  ```
  
- bitand(integer, integer) 描述：计算两个数字与运算(\&)的结果。
  返回值类型：bigint类型数字。
  示例：
  ```
  gaussdb=# SELECT bitand(127, 63);
   bitand 
  --------
       63
  (1 row)
  ```
  
- cbrt(dp) 描述：立方根。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT cbrt(27.0);
   cbrt
  ------
      3
  (1 row)
  ```
  
- ceil(x) 描述：不小于参数的最小的整数。
  返回值类型：整数。
  示例：
  ```
  gaussdb=# SELECT ceil(-42.8);
   ceil 
  ------
    -42
  (1 row)
  ```
  
- ceiling(dp or numeric) 描述：不小于参数的最小整数（ceil的别名）。
  返回值类型：与输入相同。
  示例：
  ```
  gaussdb=# SELECT ceiling(-95.3);
   ceiling
  ---------
       -95
  (1 row)
  ```
  
- cos(x) 描述：余弦。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT cos(-3.1415927);
          cos        
  -------------------
   -.999999999999999
  (1 row)
  ```
  
- cosh(x) 描述：双曲余弦。
  返回值类型：dp or numeric，不考虑隐式类型转换的情况下与输入相同。
  示例：
  ```
  gaussdb=# SELECT cosh(4);
          cosh        
  -------------------
   27.3082328360165
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  此函数在ORA兼容模式数据库中且参数a_format_version值为10c和a_format_dev_version值为s2的情况下有效。
  
- cot(x) 描述：余切。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT cot(1);
         cot
  ------------------
   .642092615934331
  (1 row)
  ```
  
- degrees(dp) 描述：把弧度转为角度。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT degrees(0.5);
       degrees
  ------------------
   28.6478897565412
  (1 row)
  ```
  
- div(y numeric, x numeric) 描述：y除以x的商的整数部分。
  返回值类型：numeric
  示例：
  ```
  gaussdb=# SELECT div(9,4);
   div
  -----
     2
  (1 row)
  ```
  
- exp(x) 描述：自然指数。
  返回值类型：与输入相同。
  示例：
  ```
  gaussdb=# SELECT exp(1.0);
          exp         
  --------------------
   2.7182818284590452
  (1 row)
  ```
  
- floor(x) 描述：不大于参数的最大整数。
  返回值类型：与输入相同。
  示例：
  ```
  gaussdb=# SELECT floor(-42.8);
   floor 
  -------
     -43
  (1 row)
  ```
  
- int1(in) 描述：将输入的text参数转换为int1类型值并返回。
  返回值类型：int1
  示例：
  ```
  gaussdb=# SELECT int1('123');
   int1
  ------
   123
  (1 row)
  gaussdb=# SELECT int1('1.1');
   int1
  ------
     1
  (1 row)
  ```
  
- int2(in) 描述：将输入参数转换为int2类型值并返回。支持的入参类型包括：bigint、float4、float8、int16、integer、numeric、real、text。
  返回值类型：int2
  示例：
  ```
  gaussdb=# SELECT int2('1234');
   int2
  ------
   1234
  (1 row)
  gaussdb=# SELECT int2(25.3);
   int2
  ------
     25
  (1 row)
  ```
  
- int4(in) 描述：将输入参数转换为int4类型值并返回。支持的入参类型包括：bit、boolean、char、double precision、int16、numeric、real、smallint、text。
  返回值类型：int4
  示例：
  ```
  gaussdb=# SELECT int4('789');
   int4
  ------
   789
  (1 row)
  gaussdb=# SELECT int4(99.9);
   int4
  ------
     100
  (1 row)
  ```
  
- int8(in) 描述：将输入参数转换为int8类型值并返回。支持的入参类型包括：bit、double precision、int16、integer、numeric、oid、real、smallint、text。
  返回值类型：int8
  示例：
  ```
  gaussdb=# SELECT int8('789');
   int8
  ------
   789
  (1 row)
  gaussdb=# SELECT int8(99.9);
   int8
  ------
     99
  (1 row)
  ```
  
- float4(in) 描述：将输入参数转换为float4类型值并返回。支持的入参类型包括：bigint、double precision、int16、integer、numeric、smallint、text。
  返回值类型：float4
  示例：
  ```
  gaussdb=# SELECT float4('789');
   float4
  --------
      789
  (1 row)
  gaussdb=# SELECT float4(99.9);
   float4
  --------
     99.9
  (1 row)
  ```
  
- float8(in) 描述：将输入参数转换为float8类型值并返回。支持的入参类型包括：bigint、int16、integer、numeric、real、smallint、text。
  返回值类型：float8
  示例：
  ```
  gaussdb=# SELECT float8('789');
   float8
  --------
      789
  (1 row)
  gaussdb=# SELECT float8(99.9);
   float8
  --------
     99.9
  (1 row)
  ```
  
- int16(in) 描述：将输入参数转换为int16类型值并返回。支持的入参类型包括：bigint、boolean、double precision、 integer、numeric、oid、real、smallint、tinyint。
  返回值类型：int16
  示例：
  ```
  gaussdb=# SELECT int16('789');
   int16
  --------
      789
  (1 row)
  gaussdb=# SELECT int16(99.9);
   int16
  --------
     100
  (1 row)
  ```
  
- numeric(in) 描述：将输入参数转换为numeric类型值并返回。支持的入参类型包括：bigint、boolean、double precision、int16、integer、money、real、smallint。
  返回值类型：numeric
  示例：
  ```
  gaussdb=# SELECT "numeric"('789');
   numeric
  ---------
       789
  (1 row)
  gaussdb=# SELECT "numeric"(99.9);
   numeric
  ---------
      99.9
  (1 row)
  ```
  
- oid(in) 描述：将输入参数转换为oid类型值并返回。支持的入参类型包括：bigint、int16。
  返回值类型：oid
  
- radians(dp) 描述：把角度转为弧度。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT radians(45.0);
       radians
  ------------------
   .785398163397448
  (1 row)
  ```
  
- random() 描述：0.0到1.0之间的随机数。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT random();
        random
  ------------------
   .824823560658842
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  建议不要在安全场景下使用该函数。
  
- rand(\[seed\]) 描述：可以无入参，也可以接受一个bigint类型的seed入参。返回0到1之间的随机数，如果指定seed，则返回随机数种子seed的随机值。
  参数：bigint类型，一个随机数种子。
  返回值类型：double
  示例：
  ```
  b_compatible_db=# SELECT rand();
         rand       
  ------------------
   .327476012520492
  (1 row)
  b_compatible_db=# SELECT rand(12321);
         rand       
  ------------------
   .326073104515672
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  - 该函数在数据库参数sql_compatibility = 'MYSQL'时生效。
  
  - 建议不要在安全场景下使用该函数。
    
- multiply(x double precision or text, y double precision or text) 描述：x和y的乘积。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT multiply(9.0, '3.0');
       multiply         
  -------------------
                 27
  (1 row)
  gaussdb=# SELECT multiply('9.0', 3.0);
       multiply         
  -------------------
                 27
  (1 row)
  ```
  
- ln(x) 描述：自然对数。
  返回值类型：与输入相同。
  示例：
  ```
  gaussdb=# SELECT ln(2.0);
          ln         
  -------------------
   .6931471805599453
  (1 row)
  ```
  
- log(x) 描述：以10为底的对数。
  返回值类型：与输入相同。
  示例：
  ```
  gaussdb=# SELECT log(100.0);
          log         
  --------------------
   2.0000000000000000
  (1 row)
  ```
  
- log(b numeric, x numeric) 描述：以b为底的对数。
  返回值类型：numeric
  示例：
  ```
  gaussdb=# SELECT log(2.0, 64.0);
          log         
  --------------------
   6.0000000000000000
  (1 row)
  ```
  
- log2(x) 描述：以2为底的对数。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT log2(2);
   log2
  ------
      1
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  该函数在数据库参数sql_compatibility = 'MYSQL'时生效。
  
- log10(x) 描述：以10为底的对数。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT log10(10);
   log10         
  -------
       1
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  该函数在数据库参数sql_compatibility = 'MYSQL'时生效。
  
- mod(x, y) 描述：x/y的余数（模）如果x是0，则返回y。
  返回值类型：在入参为(text, int)类型时，返回NUMERIC类型，其余类型入参时，返回值类型与参数类型相同。
  示例：
  ```
  gaussdb=# SELECT mod(9,4);
   mod 
  -----
     1
  (1 row)
  ```
  ```
  gaussdb=# SELECT mod(9,0);
   mod 
  -----
     9
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  此函数在ORA兼容模式数据库下且在参数a_format_version值为10c和a_format_dev_version值为s6的情况下，mod函数支持mod(text, int)重载，在以(text, int)为入参类型调用mod函数时，会优先选择mod(text, int)。
  ```
  gaussdb=# SET a_format_version='10c';
  SET
  gaussdb=# SET a_format_dev_version='s6';
  SET
  gaussdb=# SELECT mod('170141183460469231731687303715884105728', 7);
   mod 
  -----
     2
  (1 row)
  ```
  
- pi() 描述："π"常量。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT pi();
          pi
  ------------------
   3.14159265358979
  (1 row)
  ```
  
- power(a double precision or numeric, b double precision or numeric) 描述：a的b次幂。
  返回值类型：double precision or numeric。不考虑隐式类型转换的情况下，当两个入参均为numeric类型，返回numeric类型；如果其中任何一个入参为double precision，返回double precision类型。
  示例：
  ```
  gaussdb=# SELECT power(9.0, 3.0);
          power         
  ----------------------
   729.0000000000000000
  (1 row)
  ```
  
- remainder(x, y) 描述：x/y的余数，如果y是0，则返回报错信息。
  返回值类型：与输入相同（float4、float8或者numeric类型）。
  示例：
  ```
  gaussdb=# SELECT remainder(11,4);
   remainder 
  ----------
          -1
  (1 row)
  gaussdb=# SELECT remainder(9,0);
  ERROR: division by zero
  CONTEXT:  referenced column: remainder
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  此函数在ORA兼容模式数据库中且参数a_format_version值为10c和a_format_dev_version值为s2的情况下有效。
  
- round(x) 描述：离输入参数最近的整数。
  返回值类型：与输入相同（double precision或者numeric类型）。
  示例：
  ```
  gaussdb=# SELECT round(42.4);
   round 
  -------
      42
  (1 row)
  gaussdb=# SELECT round(42.6);
   round 
  -------
      43
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  float/double类型的输出结果可能会出现-0（trunc、ceil等函数同样会出现此种情形。在ORA兼容模式数据库中且参数a_format_version值为10c和a_format_dev_version值为s1的情况下结果为0），例如：
  ```
  gaussdb=# SELECT round(-0.2::float8);
   round 
  -------
      -0
  (1 row)
  ```
  
- round(v numeric, s int) 描述：保留小数点后s位，s后一位进行四舍五入。
  返回值类型：numeric
  示例：
  ```
  gaussdb=# SELECT round(42.4382, 2);
   round
  -------
   42.44
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  - 此函数在ORA兼容模式数据库中且参数a_format_version值为10c和a_format_dev_version值为s1的情况下，s截断为整数，否则s四舍五入为整数。
  
  - 在参数a_format_version值为10c和a_format_dev_version值为s1的情况下，round函数支持round(timestamp, text)重载，在以(text, text)或(text, '')为入参调用round函数时会优先选择round(timestamp, text)。
    

- setseed(dp) 描述：为随后的random()调用设置种子，种子取值范围为\[-1.0, 1.0\]。
  返回值类型：void
  示例：
  ```
  gaussdb=# SELECT setseed(0.54823);
   setseed
  ---------
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  建议不要在安全场景下使用该函数。
  
- sign(x) 描述：输出此参数的符号。
  返回值类型：-1表示负数，0表示0，1表示正数。
  示例：
  ```
  gaussdb=# SELECT sign(-8.4);
   sign 
  ------
     -1
  (1 row)
  ```
  
- sin(x) 描述：正弦。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT sin(1.57079);
         sin        
  ------------------
   .999999999979986
  (1 row)
  ```
  
- sinh(x) 描述：双曲正弦。
  返回值类型：dp or numeric，不考虑隐式类型转换的情况下与输入相同。
  示例：
  ```
  gaussdb=# SELECT sinh(4);
         sinh        
  ------------------
   27.2899171971277
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  此函数在ORA兼容模式数据库中且参数a_format_version值为10c和a_format_dev_version值为s2的情况下有效。
  
- sqrt(x) 描述：平方根。
  返回值类型：与输入相同。
  示例：
  ```
  gaussdb=# SELECT sqrt(2.0);
         sqrt        
  -------------------
   1.414213562373095
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  此函数在GUC参数gs_format_behavior_compat_options值为'sqrt_karatsuba'时会使用Karatsuba sqrt平方根算法计算，否则使用牛顿迭代算法计算。Karatsuba sqrt平方根算法的性能更快，在极少数场景下精度和牛顿迭代算法有差别。
  
- tan(x) 描述：正切。
  返回值类型：double precision
  示例：
  ```
  gaussdb=# SELECT tan(20);
         tan        
  ------------------
   2.23716094422474
  (1 row)
  ```
  
- tanh(x) 描述：双曲正切。
  返回值类型：与输入相同（double precision或者numeric类型）。
  示例：
  ```
  gaussdb=# SELECT tanh(0.1);
         tanh        
  ------------------------------------------
  0.0996679946249558171183050836783521835389
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  此函数在ORA兼容模式数据库中且参数a_format_version值为10c和a_format_dev_version值为s2的情况下有效。
  
- trunc(x) 描述：截断（取整数部分）。
  返回值类型：与输入相同。
  示例：
  ```
  gaussdb=# SELECT trunc(42.8);
   trunc 
  -------
      42
  (1 row)
  ```
  
- trunc(v numeric, s int) 描述：截断为s位小数。
  返回值类型：numeric
  示例：
  ```
  gaussdb=# SELECT trunc(42.4382, 2);
   trunc
  -------
   42.43
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  ORA兼容模式下，参数a_format_version值为10c和a_format_dev_version值为s1时，参数s若入参为小数则不会被四舍五入，而是被截断。
  
- width_bucket(op numeric, b1 numeric, b2 numeric, count int) 描述：根据等间隔分桶原则，确定操作数op在由count个等宽区间构成的\[b1,b2\]范围内所属桶的序号。
  返回值类型：int
  示例：
  ```
  gaussdb=# 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) 描述：根据等间隔分桶原则，确定操作数op在由count个等宽区间构成的\[b1,b2\]范围内所属桶的序号。
  返回值类型：int
  示例：
  ```
  gaussdb=# SELECT width_bucket(5.35, 0.024, 10.06, 5);
   width_bucket
  --------------
              3
  (1 row)
  ```
  
- smgrne(a smgr, b smgr) 描述：比较两个smgr类型整数是否不相等。
  返回值类型：boolean
  
- smgreq(a smgr, b smgr) 描述：比较两个smgr类型整数是否相等。
  返回值类型：boolean
  
- int1abs(tinyint) 描述：返回uint8类型数据的绝对值。
  返回值类型：tinyint
  
- int1and(tinyint, tinyint) 描述：返回两个uint8类型数据按位与的结果。
  返回值类型：tinyint
  
- int1cmp(tinyint, tinyint) 描述：返回两个uint8类型数据比较的结果，若第一个参数大，则返回1；若第二个参数大，则返回-1；若相等，则返回0。
  返回值类型：integer
  
- int1div(tinyint, tinyint) 描述：返回两个uint8类型数据相除的结果，结果为tinyint类型。
  返回值类型：tinyint
  
- int1eq(tinyint, tinyint) 描述：比较两个uint8类型数据是否相等。
  返回值类型：boolean
  
- int1ge(tinyint, tinyint) 描述：判断两个uint8类型数据是否第一个参数大于等于第二个参数。
  返回值类型：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类型进行除法运算。
  返回值类型：money
  
- cash_mul_int1(money, tinyint) 描述：对money类型进行乘法运算。
  返回值类型：money
  
- int1not(tinyint) 描述：无符号一字节整数二进制位翻转。
  返回值类型：tinyint
  
- int1or(tinyint, tinyint) 描述：无符号一字节整数进行或运算。
  返回值类型：tinyint
  
- int1shl(tinyint, integer) 描述：无符号一字节整数左移指定位数。
  返回值类型：tinyint
  
- int1shr(tinyint, integer) 描述：无符号一字节整数右移指定位数。
  返回值类型：tinyint
  
- analyze_tgtype_for_type(n smallint) 描述：用于解析pg_trigger.tgtype，按位解析n，并返回before each row、 after each row、before statement、after statement、instead of中的一个。
  返回值类型：varchar2(16)
  
- analyze_tgtype_for_event(n smallint) 描述：用于解析pg_trigger.tgtype，按位解析n，并返回insert、update、delete、truncate中的一个或多个。
  返回值类型：varchar2(246)
  
- nanvl(n2, n1) 描述：输入两个参数，要求为数字类型或可以被隐式转化为数字类型的非数字类型；若第一个参数n2为NaN，返回n1，否则返回n2。
  返回值类型：入参中优先级最高的类型，优先级double precision\>float4\>numeric
  示例：
  ```
  gaussdb=# SELECT nanvl('NaN', 1.1);
   nanvl 
  -------
     1.1
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  此函数在ORA兼容模式数据库中且参数a_format_version值为10c和a_format_dev_version值为s2的情况下有效。
  
 
- numeric_eq_text(numeric, text) 描述：判断numeric变量是否等于text变量转为numeric后的值。
  返回值类型：boolean
  示例：
  ```
  gaussdb=# SELECT numeric_eq_text(1, '1');
   numeric_eq_text
  -----------------
   t
  (1 row)
  ```
  
- numeric_ne_text(numeric, text) 描述：判断numeric变量是否不等于text变量转为numeric后的值。
  返回值类型：boolean
  
- numeric_gt_text(numeric, text) 描述：判断numeric变量是否大于text变量转为numeric后的值。
  返回值类型：boolean
  
- numeric_ge_text(numeric, text) 描述：判断numeric变量是否大于等于text变量转为numeric后的值。
  返回值类型：boolean
  
- numeric_lt_text(numeric, text) 描述：判断numeric变量是否小于text变量转为numeric后的值。
  返回值类型：boolean
  
- numeric_le_text(numeric, text) 描述：判断numeric变量是否小于等于text变量转为numeric后的值。
  返回值类型：boolean
  
- text_eq_numeric(text, numeric) 描述：判断text变量转为numeric后的值是否等于numeric变量。
  返回值类型：boolean
  示例：
  ```
  gaussdb=# SELECT text_eq_numeric('1', 1);
   text_eq_numeric
  -----------------
   t
  (1 row)
  ```
  
- text_ne_numeric(text, numeric) 描述：判断text变量转为numeric后的值是否不等于numeric变量。
  返回值类型：boolean
  
- text_gt_numeric(text, numeric) 描述：判断text变量转为numeric后的值是否大于numeric变量。
  返回值类型：boolean
  
- text_ge_numeric(text, numeric) 描述：判断text变量转为numeric后的值是否大于等于numeric变量。
  返回值类型：boolean
  
- text_lt_numeric(text, numeric) 描述：判断text变量转为numeric后的值是否小于numeric变量。
  返回值类型：boolean
  
- text_le_numeric(text, numeric) 描述：判断text变量转为numeric后的值是否小于等于numeric变量。
  返回值类型：boolean
  
- bigint_eq_text(bigint, text) 描述：判断bigint变量是否等于text变量转为bigint后的值。
  返回值类型：boolean
  ```
  gaussdb=# SELECT bigint_eq_text(1, '1');
   bigint_eq_text
  ----------------
   t
  (1 row)
  ```
  
- bigint_ne_text(bigint, text) 描述：判断bigint变量是否不等于text变量转为bigint后的值。
  返回值类型：boolean
  
- bigint_gt_text(bigint, text) 描述：判断bigint变量是否大于text变量转为bigint后的值。
  返回值类型：boolean
  
- bigint_ge_text(bigint, text) 描述：判断bigint变量是否大于等于text变量转为bigint后的值。
  返回值类型：boolean
  
- bigint_lt_text(bigint, text) 描述：判断bigint变量是否小于text变量转为bigint后的值。
  返回值类型：boolean
  
- bigint_le_text(bigint, text) 描述：判断bigint变量是否小于等于text变量转为bigint后的值。
  返回值类型：boolean
  
- text_eq_bigint(text, bigint) 描述：判断text变量转为bigint后的值是否等于bigint变量。
  返回值类型：boolean
  示例：
  ```
  gaussdb=# SELECT text_eq_bigint('1', 1);
   text_eq_bigint
  ----------------
   t
  (1 row)
  ```
  
- text_ne_bigint(text, bigint) 描述：判断text变量转为bigint后的值是否不等于bigint变量。
  返回值类型：boolean
  
- text_gt_bigint(text, bigint) 描述：判断text变量转为bigint后的值是否大于bigint变量。
  返回值类型：boolean
  
- text_ge_bigint(text, bigint) 描述：判断text变量转为bigint后的值是否大于等于bigint变量。
  返回值类型：boolean
  
- text_lt_bigint(text, bigint) 描述：判断text变量转为bigint后的值是否小于bigint变量。
  返回值类型：boolean
  
- text_le_bigint(text, bigint) 描述：判断text变量转为bigint后的值是否小于等于bigint变量。
  返回值类型：boolean
  
 
