读书人

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

发布时间: 2012-09-18 16:21:42 作者: rapoo

帮我看看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) 

读书人网 >Mysql

热点推荐