CREATE DEFINER="root"@"%" FUNCTION "China_NUM"(cn_num varchar(50)) RETURNS int(8)
begin
declare i int default 1;
declare result int default 0;
declare str varchar(10);
declare num int;
declare temp int default 1;
while i <= char_length(cn_num) do
set str = substring(cn_num, i, 1);
set num = case str
when '零' then 0
when '一' then 1
when '二' then 2
when '三' then 3
when '四' then 4
when '五' then 5
when '六' then 6
when '七' then 7
when '八' then 8
when '九' then 9
when '十' then 10
when '百' then 100
when '千' then 1000
ELSE 0
end;
if num!=10 && num!=100 && num!=1000 then
set temp = num;
IF i=char_length(cn_num) THEN
SET result = result + temp;
END IF;
else
set result = result + (temp * num);
end if;
set i = i + 1;
end while;
return result;
END
测试:
结果:
备注:转载前记得给博主点赞呀~~