Ejercicio funciones

Quiero una consulta que me muestre:
Nombre completo del actor separado por espacio,
titulo de la película recortado a 10 letras,
Si la descripción de la película tiene la palabra ‘epic’ que ponga ¡ÉPICA!
Si la descripción de la película tiene la palabra ‘drama’ que ponga ‘Enternecedor drama’
Si el rating es ‘R’ que ponga ‘Para adultos’ y si no es ‘R’ que no ponga nada.

-- Esta sería la solución

select 
concat_ws(' ',first_name,last_name) actor,
left(title,10) pelicula,
case 
when description like '%epic%' then 'Épica!!!!'
when description like '%drama%' then 'Enternecedor drama'
else ''
end tipo,
if (rating='R','Para adultos','') clasificacion
 from actor join film_actor using(actor_id)
join film using(film_id);

-- Esto serían alternativas y maneras de llegar al resultado

select 
concat_ws(' ',first_name,last_name) actor,
left(title,10) pelicula, substring(title,1,10) pel2,
locate('epic',description)>0,
description like '%epic%',
if(description like '%epic%','Épica!!!!',''),
replace(description, 'Epic','Épica!!!!'),
if(description like '%drama%','Enternecedor drama',''),
if(description like '%epic%','Épica!!!!',if(description like '%drama%','Enternecedor drama','')),
case 
when description like '%epic%' then 'Épica!!!!'
when description like '%drama%' then 'Enternecedor drama'
else ''
end,
description,
if (rating='R','Para adultos',''),
case rating
when 'R' then 'Para adultos'
else ''
end
 from actor join film_actor using(actor_id)
join film using(film_id);

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos