1. 程式人生 > 其它 >MySQL金額數字轉為大寫中文

MySQL金額數字轉為大寫中文

MySQL版本:5.7.34-log
通過建立函式的方法,目前可以實現整數金額的轉換,網上暫未找到MySQL版本的故自己參照其他資料庫版本的改編了一下,僅供參考!!!
使用方法:select rmb(10000)

CREATE DEFINER = `root`@`%` FUNCTION `rmb_upper`(je int)
 RETURNS varchar(200)
    DETERMINISTIC
BEGIN
	#Routine body goes here...
	declare je_number varchar(200);
	declare je_upper varchar(200);
	declare je_part varchar(200);
	declare i int;
	
	set i=1;
	set je_upper='';
	
	while i<=length(je) do
	 
		set je_part= concat(
		case  substring(je, length(je)-i+1, 1)
			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
			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);
		
		set je_upper=concat(je_part,je_upper);
		set i=i+1;
	end while;

	set je_upper = REPLACE(je_upper,'零拾','零');
	set je_upper = REPLACE(je_upper,'零佰','零');
	set je_upper = REPLACE(je_upper,'零仟零佰零拾','零');
	set je_upper = REPLACE(je_upper,'零仟','零');
	set je_upper = REPLACE(je_upper,'零零零','零');
	set je_upper = REPLACE(je_upper,'零零','零');
	set je_upper = REPLACE(je_upper,'零角零分','');
	set je_upper = REPLACE(je_upper,'零分','');
	set je_upper = REPLACE(je_upper,'零角','零');
	set je_upper = REPLACE(je_upper,'零億零萬零元','億元');
	set je_upper = REPLACE(je_upper,'億零萬零元','億元');
	set je_upper = REPLACE(je_upper,'零億零萬','億');
	set je_upper = REPLACE(je_upper,'零萬零元','萬元');
	set je_upper = REPLACE(je_upper,'萬零元','萬元');
	set je_upper = REPLACE(je_upper,'零億','億');
	set je_upper = REPLACE(je_upper,'零萬','萬');
	set je_upper = REPLACE(je_upper,'零元','元');
	set je_upper = REPLACE(je_upper,'零零','零');

  if left(je_upper,1)='元' then	set je_upper = REPLACE(je_upper,'元','零元');
  end if;    

	set je_upper=concat(je_upper,'整');
	RETURN je_upper;
END;

參考文章《sql 數字轉人民幣大寫函式(兩種方法)》連結:https://blog.csdn.net/kk185800961/article/details/8536378?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_default&utm_relevant_index=2