Evalúa una lista de condiciones y devuelve una de las varias expresiones de resultado posibles.
Ambos formatos son compatibles con un argumento ELSE opcional.
Función CASE simple:
CASE expresion_entrada WHEN valor THEN resultado [ ...n ] [ ELSE resultado_sino ] END
Expresion_entrada es la expresión que calcula el valor a evaluar.
Valor es cualquier expresión que devuelva un valor del mismo tipo que expresion_entrada (o por lo menos de conversión implícita).
Resultado es el valor devuelto por la función si expresión_entrada es igual a valor.
Resultado_sino Es el valor devuelto por la función si ninguna comparación se evalúa como TRUE. Si se omite este argumento y ninguna comparación se evalúa como TRUE, CASE devuelve NULL.
Resultado_sino y todos los Resultado deben tener el mismo tipo de datos o deben ser de conversión implícita.
Cómo funciona:
Ejemplo:
CASE estado_civil
WHEN ‘c’ THEN ‘casado/a’
WHEN ‘s’ THEN ‘soltero/o’
WHEN ‘v’ THEN ‘viudo/a’
ELSE ‘otro’
END
Si queremos evaluar si el campo es nulo no podemos añadir un WHEN NULL THEN ‘nulo’ porque la condición estado_civil = NULL no es TRUE cuando el campo es nulo, en este caso habría que utilizar la segunda forma de la función CASE y utilizar el operador is null.
Función CASE buscada:
CASE WHEN condicion THEN resultado [ ...n ] [ ELSE resultado_sino ] END
Condicion es la condición que se evalúa y si el resultado es TRUE la función devuelve resultado.
Devuelve resultado de la primera condicion que se evalúa como TRUE. SI ninguna condición se evalúa como TRUE la función devuelve NULL.
Ejemplo:
CASE
WHEN estado_civil IS NULL THEN ‘nulo’
WHEN estado_civil = ‘c’ THEN ‘casado/a’
WHEN estado_civil = ‘s’ THEN ‘soltero/o’
WHEN estado_civil = ‘v’ THEN ‘viudo/a’
ELSE ‘otro’
END
Reemplaza el valor NULL con el valor de reemplazo especificado.
ISNULL ( expresion_entrada , valor )
expresion_entrada es la expresión que indica donde se va a comprobar la existencia de NULL.
Valor es el valor por el cual se reemplaza NULL.
Ejemplo:
ISNULL(precio, 0)
Si en precio hay un valor no nulo la función devuelve ese valor, si precio contiene NULL entonces la función devuelve 0.
Devuelve la primera expresión distinta de NULL entre sus argumentos.
COALESCE ( expresion [ ,...n ] )
Si todos los argumentos son NULL, la función devuelve NULL.
Por ejemplo, tenemos dos campos fijo y movil, en uno tenemos el teléfono fijo del cliente y en el otro tenemos el teléfono móvil y queremos obtener el teléfono fijo si tiene y sino el móvil, lo pondríamos así:
COALESCE(fijo, movil)
Síguenos en: Facebook Sobre aulaClic Política de Cookies
© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.