if / else不与null比较

时间:2014-07-31 15:11:31

标签: sql oracle if-statement plsql null

在此函数的最后比较

我对`qty`值进行测试

如果其= 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,其值为空值

所以当表格有很多return 0个值时,它永远不会null qty

2 个答案:

答案 0 :(得分:0)

使用IS运算符与NULL

进行比较
IF qty IS NULL THEN

因为与= <>,>null等常规运算符会导致 unknown >

答案 1 :(得分:0)

=替换为IS

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