apzl_leasing/项目管理/脚本/增加函数2018022601.sql
2018-06-03 22:26:41 +08:00

72 lines
2.1 KiB
SQL

DROP FUNCTION ArabicToChinese;
DELIMITER $$
CREATE FUNCTION `ArabicToChinese`(ArabicNumerals DECIMAL(15,2)) RETURNS VARCHAR(200) CHARSET utf8
BEGIN
DECLARE v_LowerStr VARCHAR(200) ;
DECLARE v_UpperPart VARCHAR(200) ;
DECLARE v_UpperStr VARCHAR(200) ;
DECLARE i_I INT ;
SET v_LowerStr = LTRIM(RTRIM(ROUND(ArabicNumerals,2 ) ) ) ;
SET i_I = 1 ;
SET v_UpperStr = '' ;
WHILE ( i_I <=CHAR_LENGTH(v_LowerStr ) ) DO
SET v_UpperPart = CONCAT(
CASE SUBSTRING(v_LowerStr,CHAR_LENGTH(v_LowerStr) - i_I + 1,1 )
WHEN '.' THEN ''
WHEN '0' THEN ''
WHEN '1' THEN ''
WHEN '2' THEN ''
WHEN '3' THEN ''
WHEN '4' THEN ''
WHEN '5' THEN ''
WHEN '6' THEN ''
WHEN '7' THEN ''
WHEN '8' THEN ''
WHEN '9' THEN ''
END,
CASE i_I
WHEN 1 THEN ''
WHEN 2 THEN ''
WHEN 3 THEN ''
WHEN 4 THEN ''
WHEN 5 THEN ''
WHEN 6 THEN ''
WHEN 7 THEN ''
WHEN 8 THEN ''
WHEN 9 THEN ''
WHEN 10 THEN ''
WHEN 11 THEN ''
WHEN 12 THEN '亿'
WHEN 13 THEN ''
WHEN 14 THEN ''
WHEN 15 THEN ''
WHEN 16 THEN ''
ELSE ''
END );
SET v_UpperStr =CONCAT( v_UpperPart , v_UpperStr) ;
SET i_I = i_I + 1 ;
END WHILE;
SET v_UpperStr = REPLACE(v_UpperStr,'零拾','') ;
SET v_UpperStr = REPLACE(v_UpperStr,'零佰','') ;
SET v_UpperStr = REPLACE(v_UpperStr,'零仟','') ;
SET v_UpperStr = REPLACE(v_UpperStr,'零零零','') ;
SET v_UpperStr = REPLACE(v_UpperStr,'零零','') ;
SET v_UpperStr = REPLACE(v_UpperStr,'零角零分','') ;
SET v_UpperStr = REPLACE(v_UpperStr,'零分','') ;
SET v_UpperStr = REPLACE(v_UpperStr,'零角','') ;
SET v_UpperStr = REPLACE(v_UpperStr,'零亿零万零','亿') ;
SET v_UpperStr = REPLACE(v_UpperStr,'亿零万零','亿') ;
SET v_UpperStr = REPLACE(v_UpperStr,'零亿零万','亿') ;
SET v_UpperStr = REPLACE(v_UpperStr,'零万零','') ;
SET v_UpperStr = REPLACE(v_UpperStr,'万零','') ;
SET v_UpperStr = REPLACE(v_UpperStr,'零亿','亿') ;
SET v_UpperStr = REPLACE(v_UpperStr,'零万','') ;
SET v_UpperStr = REPLACE(v_UpperStr,'','') ;
SET v_UpperStr = REPLACE(v_UpperStr,'零零','') ;
SET v_UpperStr = REPLACE(v_UpperStr,'一十','') ;
RETURN v_UpperStr;
END;