Unidad 3. Básico: Funciones en Transact-SQL (VIII)


CASE

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

ISNULL

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.

COALESCE

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)

Atrás  Inicio    





Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies


© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.