set character set utf8;
DELIMITER $$;
DROP FUNCTION IF EXISTS `to_ch`;
CREATE FUNCTION `to_ch`(MONEY decimal(14,2)) RETURNS varchar(150) CHARSET utf8
BEGIN
declare RV_MONEY0 VARCHAR(20);
declare RV_MONEY1 VARCHAR(4);
declare RV_MONEY2 VARCHAR(4);
declare V_MONEY0 VARCHAR(28);
declare V_MONEY1 VARCHAR(4);
declare V_MONEY2 VARCHAR(4);
declare V_MONEY3 VARCHAR(4);
declare V_MONEY4 VARCHAR(4);
declare V_MONEY5 VARCHAR(4);
declare V_MONEY6 VARCHAR(4);
declare V_MONEY7 VARCHAR(4);
declare V_MONEY8 VARCHAR(4);
declare V_MONEY9 VARCHAR(4);
declare V_MONEY10 VARCHAR(4);
declare V_MONEY11 VARCHAR(4);
declare V_MONEY12 VARCHAR(4);
declare RPV_MONEY1 VARCHAR(4);
declare RPV_MONEY2 VARCHAR(4);
declare PV_MONEY0 VARCHAR(14);
declare PV_MONEY1 VARCHAR(4);
declare PV_MONEY2 VARCHAR(4);
declare PV_MONEY3 VARCHAR(4);
declare PV_MONEY4 VARCHAR(4);
declare PV_MONEY5 VARCHAR(4);
declare PV_MONEY6 VARCHAR(4);
declare PV_MONEY7 VARCHAR(4);
declare PV_MONEY8 VARCHAR(4);
declare PV_MONEY9 VARCHAR(4);
declare PV_MONEY10 VARCHAR(4);
declare PV_MONEY11 VARCHAR(4);
declare PV_MONEY12 VARCHAR(4);
declare Z_MONEY VARCHAR(28);
set Z_MONEY=FLOOR(MONEY);
set V_MONEY0=LTRIM(RTRIM(Z_MONEY));
set Z_MONEY=FLOOR(MONEY*100);
set RV_MONEY0=LTRIM(RTRIM(Z_MONEY));
set RV_MONEY1=SUBSTR(RV_MONEY0,LENGTH(RV_MONEY0),1);
IF LENGTH(RV_MONEY0)>1 THEN
set RV_MONEY2=SUBSTR(RV_MONEY0,LENGTH(RV_MONEY0)-1,1);
ELSE
set RV_MONEY2='0';
END IF;
set V_MONEY1=SUBSTR(V_MONEY0,LENGTH(V_MONEY0),1);
IF LENGTH(V_MONEY0)-1>0 THEN
set V_MONEY2=SUBSTR(V_MONEY0,LENGTH(V_MONEY0)-1,1);
ELSE
set V_MONEY2='0';
END IF;
IF LENGTH(V_MONEY0)-2>0 THEN
set V_MONEY3=SUBSTR(V_MONEY0,LENGTH(V_MONEY0)-2,1);
ELSE
set V_MONEY3='0';
END IF;
IF LENGTH(V_MONEY0)-3>0 THEN
set V_MONEY4=SUBSTR(V_MONEY0,LENGTH(V_MONEY0)-3,1);
ELSE
set V_MONEY4='0';
END IF;
IF LENGTH(V_MONEY0)-4>0 THEN
set V_MONEY5=SUBSTR(V_MONEY0,LENGTH(V_MONEY0)-4,1);
ELSE
set V_MONEY5='0';
END IF;
IF LENGTH(V_MONEY0)-5>0 THEN
set V_MONEY6=SUBSTR(V_MONEY0,LENGTH(V_MONEY0)-5,1);
ELSE
set V_MONEY6='0';
END IF;
IF LENGTH(V_MONEY0)-6>0 THEN
set V_MONEY7=SUBSTR(V_MONEY0,LENGTH(V_MONEY0)-6,1);
ELSE
set V_MONEY7='0';
END IF;
IF LENGTH(V_MONEY0)-7>0 THEN
set V_MONEY8=SUBSTR(V_MONEY0,LENGTH(V_MONEY0)-7,1);
ELSE
set V_MONEY8='0';
END IF;
IF LENGTH(V_MONEY0)-8>0 THEN
set V_MONEY9=SUBSTR(V_MONEY0,LENGTH(V_MONEY0)-8,1);
ELSE
set V_MONEY9='0';
END IF;
IF LENGTH(V_MONEY0)-9>0 THEN
set V_MONEY10=SUBSTR(V_MONEY0,LENGTH(V_MONEY0)-9,1);
ELSE
set V_MONEY10='0';
END IF;
IF LENGTH(V_MONEY0)-10>0 THEN
set V_MONEY11=SUBSTR(V_MONEY0,LENGTH(V_MONEY0)-10,1);
ELSE
set V_MONEY11='0';
END IF;
IF LENGTH(V_MONEY0)-11>0 THEN
set V_MONEY12=SUBSTR(V_MONEY0,LENGTH(V_MONEY0)-11,1);
ELSE
set V_MONEY12='0';
END IF;
select if(RV_MONEY1='0','零分',if(RV_MONEY1='1','壹分',if(RV_MONEY1='2','贰分',if(RV_MONEY1='3','叁分',
if(RV_MONEY1='4','肆分',if(RV_MONEY1='5','伍分',if(RV_MONEY1='6','陆分',if(RV_MONEY1='7','柒分',if(
RV_MONEY1='8','捌分','玖分'))))))))) into rpv_money1;
select if(RV_MONEY2='0','零角',if(RV_MONEY2='1','壹角',if(RV_MONEY2='2','贰角',if(RV_MONEY2='3','叁角',
if(RV_MONEY2='4','肆角',if(RV_MONEY2='5','伍角',if(RV_MONEY2='6','陆角',if(RV_MONEY2='7','柒角',if(
RV_MONEY2='8','捌角','玖角'))))))))) into rpv_money2;
select if(V_MONEY1='0','元',if(V_MONEY1='1','壹元',if(V_MONEY1='2','贰元',if(V_MONEY1='3','叁元',
if(V_MONEY1='4','肆元',if(V_MONEY1='5','伍元',if(V_MONEY1='6','陆元',if(V_MONEY1='7','柒元',if(
V_MONEY1='8','捌元','玖元'))))))))) into pv_money1;
select if(V_MONEY2='0','',if(V_MONEY2='1','壹拾',if(V_MONEY2='2','贰拾',if(V_MONEY2='3','叁拾',
if(V_MONEY2='4','肆拾',if(V_MONEY2='5','伍拾',if(V_MONEY2='6','陆拾',if(V_MONEY2='7','柒拾',if(
V_MONEY2='8','捌拾','玖拾'))))))))) into pv_money2;
select if(V_MONEY3='0','',if(V_MONEY3='1','壹佰',if(V_MONEY3='2','贰佰',if(V_MONEY3='3','叁佰',
if(V_MONEY3='4','肆佰',if(V_MONEY3='5','伍佰',if(V_MONEY3='6','陆佰',if(V_MONEY3='7','柒佰',if(
V_MONEY3='8','捌佰','玖佰'))))))))) into pv_money3;
select if(V_MONEY4='0','',if(V_MONEY4='1','壹仟',if(V_MONEY4='2','贰仟',if(V_MONEY4='3','叁仟',
if(V_MONEY4='4','肆仟',if(V_MONEY4='5','伍仟',if(V_MONEY4='6','陆仟',if(V_MONEY4='7','柒仟',if(
V_MONEY4='8','捌仟','玖仟'))))))))) into pv_money4;
select if(V_MONEY5='0','万',if(V_MONEY5='1','壹万',if(V_MONEY5='2','贰万',if(V_MONEY5='3','叁万',
if(V_MONEY5='4','肆万',if(V_MONEY5='5','伍万',if(V_MONEY5='6','陆万',if(V_MONEY5='7','柒万',if(
V_MONEY5='8','捌万','玖万'))))))))) into pv_money5;
select if(V_MONEY6='0','',if(V_MONEY6='1','壹拾',if(V_MONEY6='2','贰拾',if(V_MONEY6='3','叁拾',
if(V_MONEY6='4','肆拾',if(V_MONEY6='5','伍拾',if(V_MONEY6='6','陆拾',if(V_MONEY6='7','玖拾',if(
V_MONEY6='8','捌拾','玖万'))))))))) into pv_money6;
select if(V_MONEY7='0','',if(V_MONEY7='1','壹佰',if(V_MONEY7='2','贰佰',if(V_MONEY7='3','叁佰',
if(V_MONEY7='4','肆佰',if(V_MONEY7='5','伍佰',if(V_MONEY7='6','陆佰',if(V_MONEY7='7','柒佰',if(
V_MONEY7='8','捌佰','玖佰'))))))))) into pv_money7;
select if(V_MONEY8='0','',if(V_MONEY8='1','壹仟',if(V_MONEY8='2','贰仟',if(V_MONEY8='3','叁仟',
if(V_MONEY8='4','肆仟',if(V_MONEY8='5','伍仟',if(V_MONEY8='6','陆仟',if(V_MONEY8='7','柒仟',if(
V_MONEY8='8','捌仟','玖仟'))))))))) into pv_money8;
select if(V_MONEY9='0','亿',if(V_MONEY9='1','壹亿',if(V_MONEY9='2','贰亿',if(V_MONEY9='3','叁亿',
if(V_MONEY9='4','肆亿',if(V_MONEY9='5','伍亿',if(V_MONEY9='6','陆亿',if(V_MONEY9='7','柒亿',if(
V_MONEY9='8','捌亿','玖亿'))))))))) into pv_money9;
select if(V_MONEY10='0','',if(V_MONEY10='1','壹拾',if(V_MONEY10='2','贰拾',if(V_MONEY10='3','叁拾',
if(V_MONEY10='4','肆拾',if(V_MONEY10='5','伍拾',if(V_MONEY10='6','陆拾',if(V_MONEY10='7','玖拾',if(
V_MONEY10='8','捌拾','玖万'))))))))) into pv_money10;
select if(V_MONEY11='0','',if(V_MONEY11='1','壹佰',if(V_MONEY11='2','贰佰',if(V_MONEY11='3','叁佰',
if(V_MONEY11='4','肆佰',if(V_MONEY11='5','伍佰',if(V_MONEY11='6','陆佰',if(V_MONEY11='7','柒佰',if(
V_MONEY11='8','捌佰','玖佰'))))))))) into pv_money11;
select if(V_MONEY12='0','',if(V_MONEY12='1','壹仟',if(V_MONEY12='2','贰仟',if(V_MONEY12='3','叁仟',
if(V_MONEY12='4','肆仟',if(V_MONEY12='5','伍仟',if(V_MONEY12='6','陆仟',if(V_MONEY12='7','柒仟',if(
V_MONEY12='8','捌仟','玖仟'))))))))) into pv_money12;
if RPV_MONEY2 = '零角' AND RPV_MONEY1 = '零分' THEN
set V_MONEY0=CONCAT(PV_MONEY12,PV_MONEY11,PV_MONEY10,PV_MONEY9,PV_MONEY8,PV_MONEY7,PV_MONEY6,PV_MONEY5,PV_MONEY4,
PV_MONEY3,PV_MONEY2,PV_MONEY1,'整');
else
set V_MONEY0=CONCAT(PV_MONEY12,PV_MONEY11,PV_MONEY10,PV_MONEY9,PV_MONEY8,PV_MONEY7,PV_MONEY6,PV_MONEY5,PV_MONEY4,
PV_MONEY3,PV_MONEY2,PV_MONEY1,RPV_MONEY2,RPV_MONEY1);
END IF;
if SUBSTR(V_MONEY0,1,1)='亿' then
set V_MONEY0=SUBSTR(V_MONEY0,2,LENGTH(V_MONEY0)-1);
end if;
if SUBSTR(V_MONEY0,1,1)='万' then
set V_MONEY0=SUBSTR(V_MONEY0,2,LENGTH(V_MONEY0)-1);
end if;
/* 判断亿和万之间间隔的位数 locate */
set V_MONEY0=REPLACE(V_MONEY0,'亿万','亿');
/* 判断亿和元之间间隔的位数 locate */
if locate('元',V_MONEY0)-locate('亿',V_MONEY0)=2 then
set V_MONEY0=REPLACE(V_MONEY0,'亿壹','亿零壹');
set V_MONEY0=REPLACE(V_MONEY0,'亿贰','亿零贰');
set V_MONEY0=REPLACE(V_MONEY0,'亿叁','亿零叁');
set V_MONEY0=REPLACE(V_MONEY0,'亿肆','亿零肆');
set V_MONEY0=REPLACE(V_MONEY0,'亿伍','亿零伍');
set V_MONEY0=REPLACE(V_MONEY0,'亿陆','亿零陆');
set V_MONEY0=REPLACE(V_MONEY0,'亿柒','亿零柒');
set V_MONEY0=REPLACE(V_MONE