-- Si el case os permite evaluar varias opciones -- El if solamente una condición y valor si cierto, valor si falso -- Se parece mucho al operador ternario -- if(condicion,valor_si_cierto,valor_si_falso) select title, if(length>120,'Tostón','Entretenida') tipo from film; select first_name,last_name, if(right(first_name,1)=right(last_name,1),'SI','NO') final from actor; -- Tenemos dos funciones que nos permiten detectar nulos -- Porque al concatenar con nulos se 'contagian' select address,address2,postal_code,concat(address,address2,postal_code) dir from address; select 1+null+99; -- Para solucionar esto tenemos -- ifnull(valor, valor si nulo) select address,address2,ifnull(postal_code,'NO POSTAL CODE') postal_code,concat(address,address2,ifnull(postal_code,'')) dir from address; select 1+ifnull(null,0)+99; -- Podemos utilizar COALESCE -- Es más genérico, le paso una lista de valores y me devuelve el primero que no es nulo select address,address2,coalesce(postal_code,'NO POSTAL CODE') postal_code,concat(address,address2,coalesce(postal_code,'')) dir from address; select 1+coalesce(null,null,null,0)+99;
https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html