首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

帮小弟我看看mysql存储函数有什么东东

2012-09-18 
帮我看看mysql存储函数有什么错误delimiter //CREATEFUNCTION getpercent(dec1 char(20),dec2 char(20))re

帮我看看mysql存储函数有什么错误
delimiter // 
CREATE FUNCTION getpercent(dec1 char(20),dec2 char(20)) 
returns char(50) 
begin 
DECLARE Result char(50); 
SET Result = ''; 
if ifnull(dec1,0)=0 or ifnull(dec2,0)=0 then  
  Result='0'; 
elseif dec1>=dec2 then 
  Result='100'; 
else 
  Result = round(dec1 / dec2 * 100, 2); 
  if substr(Result,0,1)='.' then 
  Result =concat('0',Result); 
  end if; 
end if; 
Result =concat(Result,'%'); 
return (Result); 
end // 


[解决办法]

SQL code
mysql> delimiter //mysql> CREATE FUNCTION getpercent(dec1 int,dec2 int)    -> returns char(50)    -> begin    -> DECLARE Result char(50);    -> SET Result = '';    -> if ifnull(dec1,0)=0 or ifnull(dec2,0)=0    -> then return 0;    -> elseif dec1>=dec2    -> then return 100;    -> else    -> set Result = round(dec1 / dec2 * 100, 2);    -> if substr(Result,0,1)='.'    -> then return round(dec1 / dec2 * 100, 2);    -> else    -> return concat(Result,'%');    -> end if;    -> end if;    -> end //Query OK, 0 rows affected (0.00 sec)mysql> delimiter ;mysql> select getpercent(NULL,0);+--------------------+| getpercent(NULL,0) |+--------------------+| 0                  |+--------------------+1 row in set (0.00 sec)mysql> select getpercent(0,0);+-----------------+| getpercent(0,0) |+-----------------+| 0               |+-----------------+1 row in set (0.00 sec)mysql> select getpercent(1,2);+-----------------+| getpercent(1,2) |+-----------------+| 50.00%          |+-----------------+1 row in set (0.00 sec)mysql> select getpercent(2,1);+-----------------+| getpercent(2,1) |+-----------------+| 100             |+-----------------+1 row in set (0.02 sec) 

热点排行