¿Decode?

Tengo un decode y quisiera hacer lo siguiente sin necesidad de muchas complicaciones...
SI EL CAMPO1 = 0 ENTONCES RETORNAR 'CERO'
SINO
Si el campo1 < 0 entonces retornar 'negativo'
Sino
Si el campo1 > 0 entonces retornar 'positivo'
Esto se ve bastante sencillo, pero este problema se me presenta en select, el cual arroja ciertos resultados, los cuales debo catalogarlos como 'positivo', 'negativo' o 'cero', puedo hacer esto a través de un decode, ¿me dijeron que no? ¿Es verdad?
1

1 respuesta

Respuesta
1
La respuesta en tú dificultad de colocar rangos en el decode no se hubiera podido hacer hasta la versión Oracle8, pero la nueva versión Oracle 8i, trae incorporada una nueva versión para el decode, o mejor dicho mejoras...
Lo que tu quieres hacer se puede expresar más o menos de la siguiente manera :
Ejemplo : Supongamos que tenemos la siguiente estructura creada en Oracle8i
Ejecuta este código desde el prompt del sql
Create table Tabla_tmp (Campo1 number(2));
Insert into Tabla_tmp values(-2);
Insert into Tabla_tmp values(-1);
Insert into Tabla_tmp values(0);
Insert into Tabla_tmp values(1);
Insert into Tabla_tmp values(2);
Después de haber ejecutado estas intsrucciones, escribe el siguiente código..
Select campo1 ,
(case when (a.campo1 = 0)
then 'Cero'
when (a.campo1 < 0)
then 'Negativo'
when (a.campo1 > 0)
then 'Positivo'
else 'Ninguna'
end) resultado
from Tabla_tmp a
Order by campo1
/
Esto arrojaría como resultado
Campo1 resultado
-------- ---------
-2 Negativo
-1 Negativo
0 Cero
1 Positivo
2 Positivo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas