文档库 最新最全的文档下载
当前位置:文档库 › mysql人民币大写函数

mysql人民币大写函数

DELIMITER $$

DROP FUNCTION IF EXISTS `to_RMB`$$

CREATE DEFINER=`root`@`%` FUNCTION `to_RMB`(MONEY DECIMAL (14, 2)) RETURNS VARCHAR(150) CHARSET utf8
COMMENT '将传入小写人民币转换为大写字体人民币'
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;
S

ELECT 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;
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);
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_MONEY0,'亿捌','亿零捌');
SET V_MONEY0=REPLACE(V_MONEY0,'亿玖','亿零玖');
END IF;
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_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_MONEY0,'亿陆佰','亿零陆佰');
SET V_MONEY0=REPLACE(V_MONEY0,'亿柒佰','亿零柒佰');
SET V_MONEY0=REPLACE(V_MONEY0,'亿捌佰','亿零捌佰');
SET V_MONEY0=REPLACE(V_MONEY0,'亿玖佰',

'亿零玖佰');
/* 判断最后一个万和元之间间隔的位数 */
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_MONEY0,'万捌','万零捌');
SET V_MONEY0=REPLACE(V_MONEY0,'万玖','万零玖');
END IF;
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_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_MONEY0,'万陆佰','万零陆佰');
SET V_MONEY0=REPLACE(V_MONEY0,'万柒佰','万零柒佰');
SET V_MONEY0=REPLACE(V_MONEY0,'万捌佰','万零捌佰');
SET V_MONEY0=REPLACE(V_MONEY0,'万玖佰','万零玖佰');
/* 判断最后一个千和元之间间隔的位数 */
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_MONEY0,'仟捌','仟零捌');
SET V_MONEY0=REPLACE(V_MONEY0,'仟玖','仟零玖');
END IF;
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_MONEY0,'仟捌拾','仟零捌拾');
SET V_MONEY0=REPLACE(V_MONEY0,'仟玖拾','仟零玖拾');
/* 判断最后一个佰和元之间间隔的位数 */
IF LOCATE('元',V_MONE

Y0)-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_MONEY0,'佰捌','佰零捌');
SET V_MONEY0=REPLACE(V_MONEY0,'佰玖','佰零玖');
END IF;
IF SUBSTR(V_MONEY0,LENGTH(V_MONEY0)/2-1,1)='零' THEN
SET V_MONEY0=SUBSTR(V_MONEY0,1,LENGTH(V_MONEY0)/2-2);
END IF;
IF SUBSTR(V_MONEY0,LENGTH(V_MONEY0)/2-1,1)='零' THEN
SET V_MONEY0=SUBSTR(V_MONEY0,1,LENGTH(V_MONEY0)/2-2);
SET V_MONEY0=CONCAT(V_MONEY0,'整');
END IF;
/* 判断有没有零角,有就替换成零 */
SET V_MONEY0=REPLACE(V_MONEY0,'零角','零');
IF V_MONEY0='元整' THEN
SET V_MONEY0='零元';
END IF;
RETURN V_MONEY0;
END$$

DELIMITER ;

相关文档