mysql 空值处理

如函数

CREATE DEFINER=`root`@`localhost` FUNCTION `aaaaa`(
         product_code_                 varchar(20) ) RETURNS int(11)
BEGIN
   DECLARE temp_            int;
   DECLARE get_attr CURSOR FOR
           SELECT freq_rate
           FROM   aaaaa_tab
           AND    product_code = product_code_;
   DECLARE CONTINUE HANDLER FOR NOT FOUND SET temp_ = NULL;

   OPEN  get_attr;
   FETCH get_attr INTO temp_;
   CLOSE get_attr;

   RETURN temp_;
END

如果 其他存储过程,或者函数调用该函数,返回了空值, 就容易出现不明原因的报错 , 或者数据比较计算错误

可以设置一个中间变量接收,然后判断中间变量的值,再进行赋值处理

如:

有时候 直接用 (freq_rate = null)or(freq_rate = '') 做判断条件的时候, 莫名判断失败如下图

猜你喜欢

转载自my.oschina.net/u/3556610/blog/1924326