domingo, 21 de junio de 2015

LibreOffice Base - Consulta con la sentencia CASE WHEN

Hemos diseñado un consulta sencilla compuesta de tres campos, Nombre, Apellidos y PesoKg, en la cuarta columna incluiremos la siguiente sentencia:

CASE
WHEN "PesoKg" = 50 THEN "PesoKg" + 5
WHEN "PesoKg" > 50 THEN "PesoKg" + 50
WHEN "PesoKg" < 50 THEN "PesoKg" - 50
ELSE 0
END


La sentencia CASE, nos da la posibilidad de manipular tantos valores como deseemos, en nuestro caso hemos programado algo muy simple. Sumaremos 5 a los valores igual a 50, 50 a los valores mayores de 50 y restaremos 50 a los valores menores de 50, en caso que encuentre un valor que no cumpla con los tres primeros criterios ejecutará la sentencia ELSE, poniendo el valor a cero. Al ejecutar esta consulta nos muestra la cuarta columna con los resultados.


También puede utilizar valores literales, modificando la sentencia como sigue:

CASE 
WHEN "PesoKg" = 50 THEN 'Igual a 50' 
WHEN "PesoKg" > 50 THEN 'Mayor de 50' 
WHEN "PesoKg" < 50 THEN 'Menor de 50' 
ELSE 0
END

En este caso, si el valor es igual a 50, nos mostrará el literal 'Igual a 50', si el valor es mayor de 50, muestra el literal 'Mayor de 50' y si el valor es menor de 50 nos muestra el literal 'Menor de 50', al igual que la primera sentencia si el valor examinado no cumple con los tres criterios de la sentencia CASE, lo dejará a cero.



Esta instrucción es parecida a CASEWHEN, pero mas amplia, puede contemplar tantos valores como desee.

Si observa que no funciona de forma correcta la sentencia, revise la sintaxis de la misma.


0 comentarios:

Publicar un comentario