YashanDB LOG函数

LOG函数计算expr2以expr1为底的对数,返回一个DOUBLE类型的数值。

expr1和expr2均为YashanDB认可的通用表达式,其值须为数值型,或可以转换为NUMBER类型的字符型(转换失败返回Invalid number错误)。对于其他类型,函数返回类型不支持。

当expr1或者expr2的值为NULL时,函数返回NULL。

根据对数的数学概念,expr1应该为除0和1以外的正数,expr2应该为任意一个正数,除此之外的其他情况函数处理规则见下表:

expr2值\expr1值非0/1正数-Inf负数01InfNan-Nan
正数对数NanNan0Inf0NanNan
-InfNanNanNanNanNanNanNanNan
负数NanNanNanNanNanNanNanNan
0-InfNanNanNan-InfNanNanNan
InfInfNanNanNanInfNanNanNan
NanNanNanNanNanNanNanNanNan
-NanNanNanNanNanNanNanNanNan

示例

SELECT LOG(2,4) res FROM DUAL;
RES
-----------
2.0E+000

SELECT LOG(b'10',b'100') res FROM DUAL;
RES
-----------
2.0E+000

DROP TABLE IF EXISTS number_fd;
CREATE TABLE number_fd(numberf FLOAT, numberd DOUBLE);
INSERT INTO number_fd VALUES(0,5.55);
INSERT INTO number_fd VALUES(1,5.55);
INSERT INTO number_fd VALUES(2,-5.55);
INSERT INTO number_fd VALUES(2,0);
INSERT INTO number_fd VALUES('2','Inf');
INSERT INTO number_fd VALUES('2','-Inf');
INSERT INTO number_fd VALUES('2','Nan');
INSERT INTO number_fd VALUES('2','-Nan');

SELECT LOG(numberf,numberd) res1, LOG(numberd,numberf) res2 FROM number_fd;
       RES1        RES2 
----------- ----------- 
          0        -Inf
        Inf           0
        Nan         Nan
       -Inf           0
        Inf           0
        Nan         Nan
        Nan         Nan
        Nan         Nan
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值