【问题标题】:MySQL: User-Define FunctionMySQL:用户定义函数
【发布时间】:2016-11-02 00:11:51
【问题描述】:

对于MYSQL中的用户自定义函数,

我将一个参数传递给udf(一个int);

如果 a 为 NULL,则返回 2.0; 否则返回 3.0

`DELIMITER !
CREATE FUNCTION return val(a INTEGER) RETURNS NUMERIC(10,2)
BEGIN
  If (isNULL(a)) THEN return 2.0
  ELSE RETURN 3.0;
  END IF;
END!

DELIMITER ;`

这是正确的做法吗?

【问题讨论】:

  • 是的,显然,没有函数调用isNull,那么我如何判断a是否为NULL
  • 那我改成if (SELECT a IS NULL) THEN RETURN 2.0
  • 用 ifNull 替换 isNull 怎么样?
  • @RyanVincent,感谢您的意见
  • @bogzy,你的意思是IF ( IFNULL(a, 0)) THEN ....

标签: mysql database user-defined-functions


【解决方案1】:

您也可以使用 CASE 语句尝试这个:

CASE WHEN a IS NULL or a = ''
     then '2.0'
     else '3.0'
END 

【讨论】:

    猜你喜欢
    • 2013-09-08
    • 2017-09-06
    • 2020-10-12
    • 2012-02-08
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多