create function selectData(hname varchar(30))
returns varchar(30)
begin
     declare myresult varchar(30);
     declare rscount int;
     select count(*) into rscount from student where heroname=hname;
     if rscount=0
     then
     set myresult='no';
     else
     set myresult='yes';
     return myresult;
     end if;
     end
这样编写函数是通过编译了,但是调用这个函数:select selectData('dou');时却报了一个function ended without returns函数没有返回值的错误,不知道到底是什么缘故?

解决方案 »

  1.   

     return myresult;   应该放在    end if;  后面吧..
    create function selectData(hname varchar(30))
    returns varchar(30)
    begin
         declare myresult varchar(30);
         set myresult='yes';
         declare rscount int;     
         select count(*) into rscount from student where heroname=hname;
         if rscount=0
         then
         set myresult='no';
         end if;
         return myresult;
    end
      

  2.   

    set myresult='yes';
        
          end if;
      return myresult;
      

  3.   

    create function selectData(hname varchar(30))
    returns varchar(30)
    begin
         declare myresult varchar(30);
         declare rscount int;
         select count(*) into rscount from student where heroname=hname;
         if rscount=0
         then
         set myresult='no';
         else
         set myresult='yes';     end if;     return myresult;     end
      

  4.   

    你if后面没有return,所以最好是在end if 后加return
      

  5.   

    返回值放在end 前边。