绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Gauss 100 数据库函数介绍之数值计算函数
2020-02-25 14:43:40

数值计算函数

ABS

语法:

ABS(exp)

功能:返回exp的值。

  • 入参exp可以是数值类型或任何可以隐式转换为数值类型的非数值类型。

  • 函数返回值类型与参数exp数据类型相同。

说明:exp必须是可转为数值类型的表达式,返回exp的值(包括:INT、BIGINT、REAL、NUMBER、DECIMAL类型)。

示例:

返回-100的值。

SELECT ABS(-100) AS "Absolute" from DUAL;

Absolute
----------------------------------------
100

1 rows fetched.
ACOS

语法:

ACOS(n)

功能:返回表达式n的反余弦值。

入参n是可转成数值型的表达式,取值范围为[-1,1]。返回值是NUMBER。

示例:

返回-1的反余弦值。

SELECT ACOS(-1) AS "ACOS" from DUAL;

ACOS
----------------------------------------
3.1415926535897932384626433832795028842

1 rows fetched.
ASIN

语法:

ASIN(n)

功能:返回表达式n的反正弦值。

入参n是可转成数值型的表达式,取值范围为[-1,1]。返回值是NUMBER。

示例:

返回0.5的反正弦值。

SELECT ASIN(0.5) AS "ASIN" from DUAL;

ASIN
----------------------------------------
.523598775598298873077107230546583814033

1 rows fetched.

BITAND

语法:

BITAND(exp1,exp2)

功能:按位与运算。

入参是可转成数值型表达式。数值取值范围[-9223372036854775808, 9223372036854775807]

示例:

对数字7(二进制111)和1(二进制001)执行AND运算:

SELECT BITAND(7,1) AS "BITAND" FROM DUAL;

BITAND
--------------------
1

1 rows fetched.
BITOR

语法:

BITOR(exp1,exp2)

功能:按位或运算。

入参是可转成数值型表达式。数值取值范围[-9223372036854775808, 9223372036854775807]

示例:

返回29和15的按位或的值。

SELECT BITOR(29,15) AS "BITOR" from DUAL;

BITOR
--------------------
31

1 rows fetched.

BITXOR

语法:

BITXOR(exp1,exp2)

功能:按位异或运算。

入参是可转成数值型表达式。数值取值范围[-9223372036854775808, 9223372036854775807]

示例:

返回以下各值之间的按位异或的值。

  • 示例1:

    SELECT BITXOR (1,1) AS "BITXOR" from DUAL;

    BITXOR
    --------------------


    1 rows fetched.
  • 示例2:

    SELECT BITXOR (1,)AS "BITXOR" from DUAL;

    BITXOR
    --------------------
    1

    1 rows fetched.
  • 示例3:

    SELECT BITXOR (11,3) AS "BITXOR" from DUAL;

    BITXOR
    --------------------
    8

    1 rows fetched.

CEIL

语法:

CEIL(n)

功能:返回大于或者等于指定表达式n的小整数。

入参n是可转成数值型表达式。返回值是整数。

示例:

返回大于或者等于15.3的小整数。

SELECT CEIL(15.3) AS "CEIL" from DUAL;

CEIL
----------------------------------------
16
1 rows fetched.

COS

语法:

COS(n)

功能:返回表达式的余弦值。

入参是可转成数值型的表达式。返回值是NUMBER。

示例:

返回120度得余弦值。

SELECT COS(120 * 3.14159265359/180) AS "COS" from DUAL;

COS
----------------------------------------
-.50000000000011937382925089877706420632

1 rows fetched.

EXP

语法:

EXP(n)

功能:返回e(自然对数的底)的n次幂的值。

  • 返回类型为NUMBER。

  • 入参n是numeric数据类型或任何可以隐式转换为numeric数据类型的非数字数据类型。

示例:

返回e的3次幂的值。

SELECT EXP(3);

EXP(3)
----------------------------------------
20.085536923187667740928529654581717897

FLOOR

语法:

FLOOR(exp)

功能:求小于或等于表达式值的近的整数。

入参是可转成数值型表达式。返回值是NUMBER。

示例:

返回等于或小于12.8的大整数。

SELECT FLOOR(12.8) AS "FLOOR" from DUAL;

FLOOR
----------------------------------------
12

1 rows fetched.

INET_NTOA

语法:

INET_NTOA(exp)

功能:将给定的数字地址转换为网络地址。

入参是数值型表达式。

示例:

将4294967295转化为网络地址。

SELECT INET_NTOA(4294967295) FROM DUAL;

INET_NTOA(4294967295)
---------------------
255.255.255.255

1 rows fetched.

LN

语法:

LN(exp)

功能:自然对数(以e为底)。

入参是可转成number类型的表达式。返回值是NUMBER类型。

说明:exp当前只支持大于0的NUMBER类型。

示例:

返回70的自然对数。

SELECT LN(70) AS "LN" from DUAL;

LN
----------------------------------------
4.24849524204935898912334419812754393724

1 rows fetched.

LOG

语法:

log(exp1[,exp2])

功能:对数运算(以exp1为底)。

入参是可转成number类型的表达式。返回值是NUMBER类型。

说明:

  • exp1和exp2当前只支持number。

  • 若不传exp2,则默认以e为底,即log(exp1)=ln(exp1)。

示例:

返回以3为底,81的对数。

SELECT LOG(3,81) AS "LOG" from DUAL;

LOG
----------------------------------------
4

1 rows fetched.

MOD

语法:

MOD(exp1,exp2)

功能:求模运算。

入参是可转成NUMBER类型的表达式。返回值是NUMBER。

示例:

返回29除以3的余数。

SELECT MOD(29,3) AS "MOD" from DUAL;

MOD
----------------------------------------
2

1 rows fetched.

POWER

语法:

POWER(base,expn)

功能:返回数字乘幂的计算结果。

入参base表示底数,expn表示指数。返回值:NUMBER。

说明:

当参数expn的值为小数时,表示计算的是开方;当参数base取值小于0且参数expn为小数时,POWER函数将返回超过支持范围的报错。

示例:

返回5的3次幂的值。

SELECT POWER(5,3) AS "POWER" from DUAL;

POWER
----------------------------------------
125

1 rows fetched.

RAWTOHEX

语法:

RAWTOHEX(exp)

功能:将RAW类数值exp转换为一个相应的十六进制表示的字符串。

入参是RAW类数值。返回值是字符串。

示例:

将 '0123456789abcdef'转换为一个相应的十六进制表示的字符串。
SELECT RAWTOHEX ('0123456789abcdef') FROM DUAL;
RAWTOHEX('0123456789ABCDEF')
-----------------------------------
30313233343536373839616263646566

1 rows fetched.

ROUND

语法:

ROUND(number[,decimals])

功能:将number类数值按照decimals指定的向小数点前后截断,返回截断后的值。

  • 入参number是数值。

  • decimals指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分,并四舍五入。取值范围[-2147483648,2147483647]。

  • 如果为负数则表示从小数点开始左边的位数,相应整数数字用0填充,并四舍五入,小数部分被去掉。

示例:

  • 将1234.5678向后截断1位输出。

    SELECT ROUND(1234.5678, 1) FROM DUAL;
    ROUND(1234.5678, 1)
    ----------------------------------------
    1234.6

    1 rows fetched.
  • 将1234.5678所有小数部分截断。

    SELECT ROUND(1234.5678) FROM DUAL;
    ROUND(1234.5678)
    ----------------------------------------
    1235

    1 rows fetched.
  • 将1234.5678向前截断1位输出。

    SELECT ROUND(1234.5678, -1) FROM DUAL;
    ROUND(1234.5678, -1)
    ----------------------------------------
    1230

    1 rows fetched.

SIGN

语法:

SIGN(exp)

功能:取exp结果的符号,大于0返回1,小于0返回-1,等于0返回0。

入参exp是数值类型。

示例:

获取表达式5-6 的符号。
SELECT SIGN(5-6) FROM DUAL;

SIGN(5-6)
----------------------------------------
-1

1 rows fetched.

SIN

语法:

SIN(n)

功能:返回表达式的正弦值。

入参是可转成数值型的表达式。返回值是NUMBER。

示例:

返回45度的正弦值。

SELECT SIN(45 * 3.14159265359/180) AS "SIN" from DUAL; 

SIN
----------------------------------------
.707106781186584075022132715997995378626

1 rows fetched.

SQRT

语法:

SQRT(n)

功能:返回非负实数的平方根。

入参是可转成非负数值型表达式。返回值是decimal。

示例:

返回49的平方根。

SELECT SQRT(49) AS "SQRT" from DUAL; 

SQRT
----------------------------------------
7

1 rows fetched.

TRUNC

语法:

TRUNC(number,scale)

功能:按指定的格式截取输入的数值数据。

number是待截取的数据,scale截取精度。返回值:NUMBER。

示例:

以下示例截断数字。

SELECT TRUNC(15.79,1) AS "TRUNC" from DUAL;

TRUNC
----------------------------------------
15.7

1 rows fetched.
SELECT TRUNC(15.79,-1)AS "TRUNC" from DUAL;

TRUNC
----------------------------------------
10

1 rows fetched.


分享好友

分享这个小栈给你的朋友们,一起进步吧。

GaussDB_数据库
创建时间:2020-01-06 16:21:44
华为GaussDB数据库小栈
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • GaussDB_数据库
    专家
戳我,来吐槽~