martes, 26 de abril de 2016

SQL AVANZADO (I). USO DE LA EXPRESION CASE EN SENTENCIAS SQL INFORMIX - Advanced Informix Sql (I). Using the CASE expression in Sql

Supongo que algún jefe impaciente os habrá pedido alguna vez un informe de forma urgente (a mi me pasó hace tiempo...).
Por SQL es posible obtener información muy valiosa pero muchas veces el formato en el que se almacena la información no es del todo inteligible para la mayoría de los mortales y os habrá tocado 'maquillarlo' antes de entregarlo con el trabajo que eso conlleva.

Bueno, pues el uso de la expresión CASE en una sentencia SQL me ha servido para librarme de algunas de esas labores tan tediosas.

Imaginemos la típica tabla de pedidos en la que tenemos una columna que indica la situación del mismo con estos valores:
  • 10-Recibido
  • 20-En fabricación
  • 30-Terminado
  • 40-Enviado
  • 50-Entregado
En un informe normal obtenido por SQL unicamente podriamos obtener el código de la situación y tendríamos que explicar su significado.

Sin embargo si utilizamos la expresión CASE podemos obtener algo como esto:

SELECT 
id_pedido PEDIDO,
CASE situacion
  WHEN 10 THEN "RECIBIDO"
  WHEN 20 THEN "EN FABRICACION"
  WHEN 30 THEN "TERMINADO"
  WHEN 40 THEN "ENVIADO"
  WHEN 50 THEN "ENTREGADO"
  ELSE "DESCONOCIDO"
END SITUACION,
fecha_pedido FECHA,
cliente CLIENTE
FROM PEDIDOS

















Ya sé que el ejemplo es algo sencillo pero estoy seguro de que le vereis la forma de sacarle partido.
Lo que no estoy seguro es de si estas expresiones son estandares de SQL y se pueden utilizar con otros gestores de Bases de Datos.

Eso ya me lo comentais vosotros...


No hay comentarios:

Publicar un comentario