Mysql-create函数中的返回问题

Mysql-create函数中的返回问题,mysql,Mysql,我有一个问题,将sql server代码转换成mysql。我无法解决退货问题。错误为:[Err]1415-不允许从函数返回结果集。我尝试使用“选择进入”,但无法解决它。有什么想法吗 CREATE FUNCTION udf_NORMDIST (v FLOAT, mean FLOAT, sigma FLOAT,

我有一个问题,将sql server代码转换成mysql。我无法解决退货问题。错误为:[Err]1415-不允许从函数返回结果集。我尝试使用“选择进入”,但无法解决它。有什么想法吗

 CREATE FUNCTION udf_NORMDIST (v      FLOAT,
                                     mean        FLOAT,
                                     sigma       FLOAT,
                                     cummulative int)
RETURNS NUMERIC(28,8)


BEGIN


 SELECT @x = (v-mean)/sigma;

IF (cummulative = 1) then
   SELECT @z   = abs(@x)/sqrt(2.0);
   SELECT @t   = 1.0/(1.0+0.5*@z);
   SELECT @ans = @t*exp(-@z*@z-1.26551223+@t*(1.00002368+@t*(0.37409196+@t*(0.09678418+@t*(-0.18628806+@t*(0.27886807+@t*(-1.13520398+@t*(1.48851587+@t*(-0.82215223+@t*0.17087277)))))))))/2.0;

   IF @x <= 0 then
    return @ans;
   ELSE
    return  1-@ans;
   END if;
ELSE
   return  exp(-@x*@x/2.0)/sqrt(2.0*3.14159265358979);
END if;

END
创建函数udf\u NORMDIST(v FLOAT,
平均浮动,
西格玛浮点数,
累加(整数)
返回数字(28,8)
开始
选择@x=(v-平均值)/西格玛;
如果(累计=1),则
选择@z=abs(@x)/sqrt(2.0);
选择@t=1.0/(1.0+0.5*@z);
选择@ans=@t*exp(-@z*@z-1.26551223+@t*(1.00002368+@t*(0.37409196+@t*(0.09678418+@t*(-0.18628806+@t*(0.27886807+@t*(-1.13520398+@t*(1.48851587+@t*(-0.82215223+@t*0.17087277-))))/2.0;

如果@x您似乎已经从CREATE FUNCTION语句中删除了顶部,那么您的错误可能来自使用SELECT设置变量;正确的语法是
SET@v:=(表达式)。您问过这个问题,提供的副本中有什么不适用?我在你的代码中没有看到选择进入。请检查这是否回答了你的问题?