2015-10-04

Función Nz como alternativa a coalesce en Ms Access

Title

Problema

Partimos de la siguiente tabla. Deseamos fusionar las columnas num1 y num2 en una nueva, de manera que no hay ningún valor nulo.

Solución

En Ms Access no disponemos de la función coalesce que sirve precisamente para este propósito. Como alternativa empleamos la función nz. Creamos una consulta con un campo calculado —comb— con la siguiente expresión.

comb: Nz([num1];[num2])*1

  • SQL
  • SELECT Tabla.id, Tabla.nombre, Tabla.num1, Tabla.num2, Nz([num1],[num2])*1 AS comb
    FROM Tabla;
    
    

    Resultado

    Notas

    La función Nz por defecto —si dejamos el segundo argumento en blanco— devuelve un cero cuando un campo es nulo. En este caso, le especificamos otro campo para devolver ese valor en su lugar. Multiplicamos por 1 la expresión para que el tipo de datos del nuevo campo sea número en lugar de texto. Sin multiplicar por 1 el resultado sería texto, con los números alineados a la izquierda.

    Más de dos campos

    Podemos seguir el mismo procedimiento para más de dos campos, anidando la función Nz. Por ejemplo con 3 campos:

    comb:Nz([num1];Nz([num2];[num3]))*1
    

    Entradas relacionadas

    Referencias

    No hay comentarios:

    Publicar un comentario

    Nube de datos