【问题标题】:if/else not compare with nullif/else 不与 null 比较
【发布时间】:2014-07-31 15:11:30
【问题描述】:

在这个函数的最后比较

我对 `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

所以当表中有很多null qty vales 时,它永远不会return 0

【问题讨论】:

    标签: sql oracle if-statement plsql null


    【解决方案1】:

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

    IF qty IS NULL THEN
    

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

    【讨论】:

      【解决方案2】:

      = 替换为IS

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-12
        • 1970-01-01
        • 2022-11-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-09
        • 1970-01-01
        相关资源
        最近更新 更多