Oracle:处理NULL值的最佳方法

Bog*_*ogo 1 oracle plsql

我在一个过程中有这段代码:

 if val is NULL
    then 
    creb :=0;
   else 
     creb := val;
 end if;
Run Code Online (Sandbox Code Playgroud)

是否有更优雅的方式来处理null?

Boh*_*ian 6

使用coalesce (),如果传递给它,则返回列表中的第一个非空值:

creb := coalesce(val, 0);
Run Code Online (Sandbox Code Playgroud)


Syl*_*oux 5

作为Bohemian答案的补充,Oracle具有非标准NVL- NVL2如果您需要具有与条件不同的值的其他案例 - 则可以处理该问题.

creb := nvl(val, 0);
Run Code Online (Sandbox Code Playgroud)

COALESCE 具有标准和接受多个参数的优点.