mysql> DELIMITER  //
mysql> CREATE FUNCTION `jun`(v_userid varchar(20) CHARSET gb2312, v_questionid varchar(20) CHARSET gb2312)
        RETURNS varchar(20)  
begin
    declare v_score01 INTEGER;
    declare v_score02 INTEGER;
    declare v_score03 INTEGER;
    declare v_score04 INTEGER;
    declare v_score05 INTEGER;
    declare v_score06 INTEGER;
    declare v_score07 INTEGER;
    declare v_score08 INTEGER;
    declare v_score09 INTEGER;
    declare v_score10 INTEGER;
    declare v_num INTEGER;
    declare v_avgjun INTEGER;
 set v_num=0;
 select score01,score02,score03,score04,score05,
 score06,score07,score08,score09,score10 into
 v_score01,v_score02,v_score03,v_score04,v_score05,
 v_score06,v_score07,v_score08,v_score09,v_score10 from grade
 where userid=v_userid and questionid=v_questionid;
 if(v_score01!='0') num++;
 if(v_score02!='0') num++;
 if(v_score03!='0') num++;
 if(v_score04!='0') num++;
 if(v_score05!='0') num++;
 if(v_score06!='0') num++;
 if(v_score07!='0') num++;
 if(v_score08!='0') num++;
 if(v_score09!='0') num++;
 if(v_score10!='0') num++;
 select (score01+score02+score03+score04+score05+score06+score07+score08+score09+score10)/num as jun into
 v_avgjun from grade where userid=v_userid and questionid=v_questionid;
END
//
问题是:if(v_score01!='0') num++;怎么写!!
if语句怎么写!
谢谢各位!!

解决方案 »

  1.   

    if(v_score01 != '0')
    {
    num++;
    }
    在mysql中这样写有什么问题吗?你想实现什么功能呢?
      

  2.   

    if(v_score01!='0') num++;<=====>if v_score01 != 0 then
      set num = num + 1;
    end if;
      

  3.   

    我这是一个求平均值的函数:声明了 v_score10个 变量:
    select score01,score02,score03,score04,score05,
     score06,score07,score08,score09,score10 into
     v_score01,v_score02,v_score03,v_score04,v_score05,
     v_score06,v_score07,v_score08,v_score09,v_score10 from grade
     where userid=v_userid and questionid=v_questionid
    从而得到10个变量得到了值
    if(v_score01!='0') num++;
    如果v_score01之10有值不等于0,则num加1
    我这里是为了v_score01之10的和除数
    如果v_score(1-10)有一个值等于0
    num的个数就是9,
    v_score(1-10)则除于9
    我在实际应用中v_score(1-10)想加是评委打的总分数,num是评委的总个数
    得到是平均分数
    我的意思大家明白了吗?