Usar CASE en WHERE y en ORDER BY ORACLE
En algún momento si necesitamos condicionar la información de un WHERE o un ORDER BY, se puede realizar sin inconvenientes con un simple case: Ejemplo de un CASE evaluando un solo campo:
1 2 3 4 5 6 7 8 9 10 |
CASE campo WHEN 'ACTIVO' THEN --SQL WHEN 'INACTIVO' THEN --SQL ELSE --SQL END |
Ejemplo de un CASE si se necesita evaluar múltiples campos:
1 2 3 4 5 6 7 8 9 10 |
CASE WHEN campo1 = 'ACTIVO' AND campo2 = 'DISPONIBLE' THEN --SQL WHEN campo1 = 'INACTIVO' AND campo2 = 'NO DISPONIBLE' THEN --SQL ELSE --SQL END |
Hay que conocer la diferencia de ambos métodos para poder realizar condicionales dentro de cláusulas WHERE y ORDER BY. Ejemplo de CASE en WHERE. En un caso con un Procedimiento PL/SQL me encontré con una tabla que incluía dos tipos de documentos, para no repetir el mismo procedimiento o realizar dos consultas dependiendo del tipo […]