Creamos la función en este caso con un parámetro de entrada que es el número que vamos a recorrer para ir cambiando por palabras.

DELIMITER $$

DROP FUNCTION IF EXISTS `fn_letras`$$

CREATE  FUNCTION `fn_letras`(_numero NUMERIC(20,2)) RETURNS VARCHAR(512) CHARSET utf8 COLLATE utf8_spanish_ci
BEGIN
		DECLARE _lnEntero INT; 
		DECLARE _lcRetorno VARCHAR(512); 
		DECLARE _lnTerna INT; 
		DECLARE _lcMiles VARCHAR(512); 
		DECLARE _lcCadena VARCHAR(512); 
		DECLARE _lnUnidades INT; 
		DECLARE _lnDecenas INT; 
		DECLARE _lnCentenas INT; 
		DECLARE _lnFraccion INT; 
		DECLARE _resultado VARCHAR(512); 
		SET _lnEntero = FLOOR(_numero); 
		SET _lnFraccion = (_numero - _lnEntero) * 100; 
		SET _lcRetorno = ''; 
		SET _lnTerna = 1 ;
		
		WHILE( _lnEntero > 0) DO 

			SET _lcCadena = ''; 
			SET _lnUnidades = _lnEntero MOD 10; 
			SET _lnEntero = FLOOR(_lnEntero/10); 
			SET _lnDecenas = _lnEntero MOD 10; 
			SET _lnEntero = FLOOR(_lnEntero/10); 
			SET _lnCentenas = _lnEntero MOD 10; 
			SET _lnEntero = FLOOR(_lnEntero/10); 

			SET _lcCadena = CASE 
								WHEN _lnUnidades = 1 AND _lnTerna = 1 THEN CONCAT('UNO ', _lcCadena) 
								WHEN _lnUnidades = 1 AND _lnTerna <> 1 THEN CONCAT('', _lcCadena) 
								WHEN _lnUnidades = 2 THEN CONCAT('DOS ', _lcCadena) 
								WHEN _lnUnidades = 3 THEN CONCAT('TRES ', _lcCadena) 
								WHEN _lnUnidades = 4 THEN CONCAT('CUATRO ', _lcCadena) 
								WHEN _lnUnidades = 5 THEN CONCAT('CINCO ', _lcCadena) 
								WHEN _lnUnidades = 6 THEN CONCAT('SEIS ', _lcCadena) 
								WHEN _lnUnidades = 7 THEN CONCAT('SIETE ', _lcCadena) 
								WHEN _lnUnidades = 8 THEN CONCAT('OCHO ', _lcCadena) 
								WHEN _lnUnidades = 9 THEN CONCAT('NUEVE ', _lcCadena) 
							ELSE _lcCadena 
							END; 

			SET _lcCadena = CASE 
								WHEN _lnDecenas = 1 THEN 
									CASE _lnUnidades 
										WHEN 0 THEN 'DIEZ ' 
										WHEN 1 THEN 'ONCE ' 
										WHEN 2 THEN 'DOCE ' 
										WHEN 3 THEN 'TRECE ' 
										WHEN 4 THEN 'CATORCE ' 
										WHEN 5 THEN 'QUINCE' 
										ELSE CONCAT('DIECI', _lcCadena) 
									END 
								WHEN _lnDecenas = 2 AND _lnUnidades = 0 THEN CONCAT('VEINTE ', _lcCadena) 
								WHEN _lnDecenas = 2 AND _lnUnidades <> 0 THEN CONCAT('VEINTI', _lcCadena) 
								WHEN _lnDecenas = 3 AND _lnUnidades = 0 THEN CONCAT('TREINTA ', _lcCadena) 
								WHEN _lnDecenas = 3 AND _lnUnidades <> 0 THEN CONCAT('TREINTA Y ', _lcCadena) 
								WHEN _lnDecenas = 4 AND _lnUnidades = 0 THEN CONCAT('CUARENTA ', _lcCadena) 
								WHEN _lnDecenas = 4 AND _lnUnidades <> 0 THEN CONCAT('CUARENTA Y ', _lcCadena) 
								WHEN _lnDecenas = 5 AND _lnUnidades = 0 THEN CONCAT('CINCUENTA ', _lcCadena) 
								WHEN _lnDecenas = 5 AND _lnUnidades <> 0 THEN CONCAT('CINCUENTA Y ', _lcCadena) 
								WHEN _lnDecenas = 6 AND _lnUnidades = 0 THEN CONCAT('SESENTA ', _lcCadena) 
								WHEN _lnDecenas = 6 AND _lnUnidades <> 0 THEN CONCAT('SESENTA Y ', _lcCadena) 
								WHEN _lnDecenas = 7 AND _lnUnidades = 0 THEN CONCAT('SETENTA ', _lcCadena) 
								WHEN _lnDecenas = 7 AND _lnUnidades <> 0 THEN CONCAT('SETENTA Y ', _lcCadena) 
								WHEN _lnDecenas = 8 AND _lnUnidades = 0 THEN CONCAT('OCHENTA ', _lcCadena) 
								WHEN _lnDecenas = 8 AND _lnUnidades <> 0 THEN CONCAT('OCHENTA Y ', _lcCadena) 
								WHEN _lnDecenas = 9 AND _lnUnidades = 0 THEN CONCAT('NOVENTA ', _lcCadena) 
								WHEN _lnDecenas = 9 AND _lnUnidades <> 0 THEN CONCAT('NOVENTA Y ', _lcCadena) 
								ELSE _lcCadena 
							END;

			SET _lcCadena = CASE 
								WHEN _lnCentenas = 1 AND _lnUnidades = 0 AND _lnDecenas = 0 THEN CONCAT('CIEN ', _lcCadena) 
								WHEN _lnCentenas = 1 AND NOT(_lnUnidades = 0 AND _lnDecenas = 0) THEN CONCAT('CIENTO ', _lcCadena) 
								WHEN _lnCentenas = 2 THEN CONCAT('DOSCIENTOS ', _lcCadena) 
								WHEN _lnCentenas = 3 THEN CONCAT('TRESCIENTOS ', _lcCadena) 
								WHEN _lnCentenas = 4 THEN CONCAT('CUATROCIENTOS ', _lcCadena) 
								WHEN _lnCentenas = 5 THEN CONCAT('QUINIENTOS ', _lcCadena) 
								WHEN _lnCentenas = 6 THEN CONCAT('SEISCIENTOS ', _lcCadena) 
								WHEN _lnCentenas = 7 THEN CONCAT('SETECIENTOS ', _lcCadena) 
								WHEN _lnCentenas = 8 THEN CONCAT('OCHOCIENTOS ', _lcCadena) 
								WHEN _lnCentenas = 9 THEN CONCAT('NOVECIENTOS ', _lcCadena) 
								ELSE _lcCadena 
							END; 

			SET _lcCadena = CASE 
								WHEN _lnTerna = 1 THEN _lcCadena 
								WHEN _lnTerna = 2 AND (_lnUnidades + _lnDecenas + _lnCentenas <> 0) THEN CONCAT(_lcCadena,  'MIL ') 
								WHEN _lnTerna = 3 AND (_lnUnidades + _lnDecenas + _lnCentenas <> 0) AND _lnUnidades = 1 AND _lnDecenas = 0 AND _lnCentenas = 0 THEN CONCAT(_lcCadena, 'MILLON ') 
								WHEN _lnTerna = 3 AND (_lnUnidades + _lnDecenas + _lnCentenas <> 0) AND NOT (_lnUnidades = 1 AND _lnDecenas = 0 AND _lnCentenas = 0) THEN CONCAT(_lcCadena, 'MILLONES ') 
								WHEN _lnTerna = 4 AND (_lnUnidades + _lnDecenas + _lnCentenas <> 0) THEN CONCAT(_lcCadena, 'MIL MILLONES ') 
								ELSE '' 
							END; 

			SET _lcRetorno = CONCAT(_lcCadena, _lcRetorno); 
			SET _lnTerna = _lnTerna + 1; 
		END WHILE; 

		IF _lnTerna = 1 THEN 
			SET _lcRetorno = 'CERO'; 
		END IF; 

		SET _resultado = CONCAT(RTRIM(_lcRetorno), ' CON ', LTRIM(_lnFraccion), '/100 ');

		RETURN _resultado; 
		
    END$$

DELIMITER ;