- genexus (6)
- java (2)
- net (1)
- noticias ti (1)
- nulos em genexus (1)
- nulos em oracle (1)
- oracle (5)
- tomcat (2)
- webservice (1)
- 5. December 2008: Exercício de tratamento de nulos com GeneXus 9 Web e .NET e Oracle 10g XE
- 21. July 2008: Tutorial como hacer un WebService con GeneXus
- 21. July 2008: Instalación de Tomcat 5.5.20 en Windows para usar con GeneXus Java sin Deployment para MySql
- 17. December 2007: Como desinstalar oracle 9
- 3. July 2007: Como simular una función Session o Variable Global en Win con GeneXus y Oracle
- 26. June 2007: Insert Update de Caracteres especiales en Oracle ' chr(39)
- 24. April 2007: Tips: Como usar Case en Oracle
- 22. April 2007: Cual es mi numero de skype
- 21. September 2006: Tips: Como hacer nuestro clásico debug en java/tomcat con GeneXus
Tips: Como usar Case en Oracle
Puede darse el caso de que querramos devolver un texto o valor dependiendo del dato de una columna en una tabla Oracle.
Por ejemplo
Si tenemos una tabla de nombre Empleados_Salarios con los campos
Empleado, Salario
y con valores
Agustin, 20.000
Ignacio, 1.500
Nicolás, 10.000
Y en un select queremos en vez de reflejar los valores exactos y mostrar categorías, podemos usar la sentencia CASE de Oracle como el siguiente ejemplo muestra.
Select Empleado,
CASE
when Salario when Salario >= 5.000 and Salario else ‘Salario Alto’
END Categoria_Salario
from Empleados_Salarios;
La sentencia contiene las palabras reservadas “when” para establecer las condiciones, “else” para el caso que no cumpla una de las condiciones when, y “CASE” y “END” que encierran la cláusula condicional, coloqué la palabra “Categoria_Salario” como alias de la columna de categorías.
Otro ejemplo sencillo podría ser:
Tengo una tabla de nombre Stock con 3 campos:
Material char(20),
Entradas number(10),
Salidas number(10)
Y quisiera saber los saldos positivos de Entradas - Salidas, y en el caso que las Salidas sean mayores que las Entradas, no quiero mostrar el valor negativo, sino un valor 0.
Tengo que tener en cuenta los valores nulos que pudiera tener de Entradas o Salidas
El select sería el siguiente:
Select Material,Nvl(entradas,0) Entradas, Nvl(salidas,0) Salidas,
Case Nvl(entradas,0) - Nvl(salidas,0) > 0 then Nvl(entradas,0) - Nvl(salidas,0)
else 0
End Diferencia
from Stock;
Espero que estos mini ejemplos sean de utilidad.
Fabricio De los Santos
Gerencia de Proyectos - Consultoría GeneXus -
ERP – Sistemas de Misión Crítica - Bases de Datos.
Vea mis blogs en:
www.fabriciodelossantos.com