If /else不与null比较



在这个函数的末尾比较

我对' qty '值进行了测试

如果its = null,则必须返回0

否则返回从表

中读取的数量
CREATE OR REPLACE FUNCTION QTYDEPOT(
    id_pro IN NUMBER )
  RETURN NUMBER
AS
  qty NUMBER;
BEGIN
  .....
  IF qty =NULL THEN
    RETURN 0;
  ELSE
    RETURN qty ;
  END IF;
END;

函数工作正确的问题总是返回qty与空值

所以当表中有很多null qty值时绝不是return 0

使用IS运算符与NULL进行比较

IF qty IS NULL THEN

因为与null

相比,使用=<>>等普通运算符会导致未知

=替换为IS:

IF qty IS NULL THEN
    RETURN 0;
ELSE
    RETURN qty ;
END IF;

最新更新