最初由 jaunt 发布
[B]select decode( nvl(b1, 0), 0, 0, ( nvl(b2, 0) - b1 ) /b1 ) from ... [/B]
关于decode函数调用过程的理解 大侠们帮忙看看理解得对不对
decode( nvl(b1, 0), 0, 0, ( nvl(b2, 0) - b1 ) /b1 )
1 nvl(b1, 0) 如果结果为0 则表达式返回结果为0
2 nvl(b1, 0)不为0则计算( nvl(b2, 0) - b1 ) /b1 返回( nvl(b2, 0) - b1 ) /b1的结果
疑问 oracle decode()执行顺序?
是先把 decode( nvl(b1, 0), 0, 0, ( nvl(b2, 0) - b1 ) /b1 ) 中各个表达式计算出结果 再decode
还是如我所理解的那样 先算nvl(b1, 0)
谢谢 |