You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL自定义Commission_Sales函数报错求助:阶梯计算佣金

修复Commission_Sales函数的语法错误

你的代码存在几处语法问题,修正要点如下:

  • 多语句函数必须把逻辑放在BEGIN...END块内
  • 变量声明DECLARE必须放在BEGIN块的最开头,不能写在分支逻辑里
  • IF条件判断需要用END IF;闭合
  • 恢复默认分隔符的命令格式错误,正确写法是DELIMITER ;

修正后的完整代码

DELIMITER //
CREATE FUNCTION Commission_Sales 
(SALES_PRICE DECIMAL(4,2), COST_PRICE DECIMAL(4,2))
RETURNS DECIMAL(4,2)
DETERMINISTIC
BEGIN
  DECLARE Commission DECIMAL(4,2);
  IF SALES_PRICE >= 50.00 THEN    
    SET Commission = (SALES_PRICE - COST_PRICE) * 0.2;
  ELSE
    SET Commission = (SALES_PRICE - COST_PRICE) * 0.1;
  END IF;
  RETURN Commission;
END //
DELIMITER ;

简化版代码(无需声明变量)

如果逻辑简单,也可以直接通过条件函数返回结果,减少代码量:

DELIMITER //
CREATE FUNCTION Commission_Sales 
(SALES_PRICE DECIMAL(4,2), COST_PRICE DECIMAL(4,2))
RETURNS DECIMAL(4,2)
DETERMINISTIC
BEGIN
  RETURN IF(SALES_PRICE >= 50.00, 
            (SALES_PRICE - COST_PRICE) * 0.2, 
            (SALES_PRICE - COST_PRICE) * 0.1);
END //
DELIMITER ;

内容的提问来源于stack exchange,提问作者Keri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 08:05:33