[英]Problem when using CASE function in mysql but getting Error Code: 1241. Operand should contain 1 column(s)
I am using CASE statement in a function in mysql like this:我在 mysql 的 function 中使用 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);
but I am getting this error every time.但我每次都收到这个错误。 Any help please
请提供任何帮助
seems you have wrong () in a WHEN condition似乎您在 WHEN 条件下有错误 ()
try尝试
WHEN Rslt2>=1 THEN amntpercent((Rslt2 * UnitPrice * X),ByAmnt, Dscnt) + (Rslt3 * UnitPrice)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.