oracle函数

普通函数

正负值类:

ABS

绝对值,返回值一定大于等于0
SIGN
返回值只有1(正数)、-1(负数)和0(零)

舍入类的函数
CEL,向上取整
ceil(1.06)=2,ceil1.9)=2
FLOOR,向下取整
floor(1.06)=1, floor(1.9)=1
ROUND,四舍五入
round(1.06)=1, round(1.9)=2. round(15.06,1)=15.1, round(15.06,-1)=20
TRUNC,截断
trunc(1.06)=1, trunc(1.9)=1, trunc(15.16,1)=15.1, trunc(15.16,-1)=10

求余类的函数
MOD,求余
经典:mod(n2,n1)=n2-n1* FLOOR(n2/n1)
oracle: mod(n2, n1)=sign(n2*(abs(n2)-abs(n1)*FLOOR(abs(n2)/abs(n1)))
・n2为正数:mod(13,5)=3,mod(13.12,5)=3.12,mod(13.12,5.1)=2.92,mod(13.12,-5)=3.12
n2为负数:mod(-13,5)=-3,mod(-13.12,5.1)=-2.92
Oracle里的mod求余和传统意义上的mod函数不一样
REMAINDER,求余2
・经典: remainder(n2.n1)=n2-n1* ROUND(n2/n1)
oracle remainder(n2, n1)=n2-n1*(case when ABS(2/n1)-05=TRUNC(ABS(n2/n1))and
mod(ROUND(AB$( 2/n1)). 2)=1 then ROUND(n2/n1)-SIGN(2/n1)else ROUND(n2/n1)end
n2为正数: remainder(13,5)=-2, remainder(113)=1
・n2为负数: remainder(-13,5)=2, remainder(-13.12,5.1)=2.18
通常我们使用MOD,而不使用 REMAINDER

 

上一篇:【算法学习日志】一道双指针(误)


下一篇:2021年N1叉车司机试题及解析及N1叉车司机复审考试