在Oracle中,任何数字除以NULL都会返回NULL。我想知道DB2数据库是什么情况? 重点是检查以下表达式对于Oracle和DB2是否表现出相同的行为: 从some_table中选择a / NULLIF(b,0); 假设b = 0,我们将除以空。
答案 0 :(得分:1)
如果两个参数相等,则NULLIF函数将返回null值;否则,它将返回第一个参数的值。
-NULLIF(expression,expression)-------------------------------
使用NULLIF(e1,e2)的结果与使用CASE表达式的结果相同:
e1 = e2则为空,否则e1结束的情况 复制
当e1 = e2由于一个或两个参数为空而得出未知值时,CASE表达式会认为该计算结果不正确。在这种情况下,NULLIF返回值 第一个参数。 IBM DB2 docs
因此,对于DB2和oracle来说,其工作方式相同
答案 1 :(得分:0)
当数学表达式中的运算符之一为null时,Db2返回null。例如
values (3 / cast(null as integer)) will return null.
另一方面,NULLID的定义与Oracle中的定义相同。如果两个参数相等,则将返回null。