Prueba de variables:
CREATE FUNCTION `borrame` () RETURNS INTEGER BEGIN declare var int; declare nombre varchar(50); declare num int; set nombre='juan'; set var=5; set var=var+3; select count(actor_id) into num from actor; RETURN num+var+length(nombre); END
Usar un parámetro y un into variable:
CREATE FUNCTION `actores_como`(cadena varchar(50)) RETURNS int(11) BEGIN declare total int; select count(actor_id) into total from actor where first_name like concat('%',cadena,'%') or last_name like concat('%',cadena,'%') ; RETURN total; END
Uso de if:
CREATE FUNCTION `tipo_sueldo`(sueldo INT) RETURNS varchar(10) BEGIN DECLARE a VARCHAR(10); IF sueldo>1500 then RETURN 'ALTO'; ELSE RETURN 'BAJO'; END IF; END
Uso de case:
CREATE FUNCTION `tipo_sueldo_ampliado`(sueldo int) RETURNS varchar(30) BEGIN declare tipo varchar(30); case when sueldo<1500 then set tipo='bajo'; when sueldo<2500 then set tipo='medio'; else set tipo='alto'; end case; RETURN tipo; END
Uso de while:
CREATE FUNCTION `factorial`(num int) RETURNS int(11) BEGIN declare total,cont int default 1; while cont<=num do set total=total*cont; set cont=cont+1; end while; RETURN total; END