15/02/2011, 17:15
|
| | Fecha de Ingreso: diciembre-2009
Mensajes: 56
Antigüedad: 14 años, 11 meses Puntos: 0 | |
Respuesta: IFNULL ('campo','alias' ) Cita:
Iniciado por leonardo_josue Mira, según algunos autores no es recomendable anidar más de 5 niveles en sentencias IF-ELSE o CASE-WHEN tanto en programación como en base de datos.
En todo caso puedes utilizar un SWITCH O CASE en programación o un CASE-WHEN, pero no en su forma de búsqueda, me explico. En Base de Datos la sentencia CASE-WHEN se comporta de dos maneras
Case de búsqueda:
CASE WHEN numero = 1 THEN 'uno' ELSE
CASE WHEN numero = 2 THEN 'dos' ELSE
CASE WHEN numero = 3 THEN 'tres'
END
END
END
Case Sencillo:
CASE numero
WHEN 1 THEN 'uno'
WHEN 2 THEN 'dos'
WHEN 3 THEN 'tres'
END
En ambos casos el resultado sería semejante, pero si observas en el primer ejemplo estás anidando tres CASE-WHEN, mientras que en el caso del CASE Sencillo es un solo CASE.
Por lo tanto, depende de tu lógica de negocio, pero si tienes un buen diseño no tendrás necesidad de usar tanta anidación
Saludos
Leo. Muy amable con la respuesta, muy explicativo tambien gracias, caso cerrado |