如何解决在 mysql 中使用 CASE 函数但得到错误代码时出现问题:1241操作数应包含 1 列
我在 mysql 的函数中使用 CASE 语句,如下所示:
BEGIN
declare Rslt1 decimal(10,2);declare Rslt2 int;declare Rslt3 int;
declare Rslt decimal(10,2);declare Tot decimal(10,2);
set Tot = UnitPrice * OrderQty;
if Calctype = 0 then
set Rslt1 = Tot;
elseif CalcType=1 then -- Buy X Pay Y
set Rslt2 = floor((OrderQty/X));
set Rslt3 = (Orderqty - (RSlt2 * X));
set Rslt1 = CASE
WHEN Rslt2 =0 THEN Tot
WHEN Rslt2>=1 THEN amntpercent(((Rslt2 * UnitPrice * X),ByAmnt,Dscnt) + (Rslt3 * UnitPrice))
End;
elseif CalcType = 2 then -- for X Pay Y ( Discount by Amnount or Percentage)
set RSlt1= amntpercent(Tot,ByAmny,Dscnt);
end if;
RETURN (Rslt1);
但我每次都会收到此错误。 任何帮助请
解决方法
似乎你在 WHEN 条件下错了 ()
试试
WHEN Rslt2>=1 THEN amntpercent((Rslt2 * UnitPrice * X),ByAmnt,Dscnt) + (Rslt3 * UnitPrice)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。