then not ejemplo sql ms-access database-design

not - isnull() sql



SQL Null establecido en cero para agregar (7)

Tengo una consulta SQL (MS Access) y necesito agregar dos columnas, cualquiera de las cuales puede ser nula. Por ejemplo:

SELECT Column1, Column2, Column3+Column4 AS [Added Values] FROM Table

donde Column3 o Column4 pueden ser nulos. En este caso, quiero que null se considere cero (entonces 4 + null = 4, null + null = 0 ).

¿Alguna sugerencia sobre cómo lograr esto?


Como ISNULL en Access es una función booleana (un parámetro), utilícela así:

SELECT Column1, Column2, IIF(ISNULL(Column3),0,Column3) + IIF(ISNULL(Column4),0,Column4) AS [Added Values] FROM Table


Usa COALESCE.

SELECT Column1, Column2, COALESCE(Column3, 0) + COALESCE(Column4, 0) AS [Added Values] FROM Table


Use el comando de reemplazo ISNULL :

SELECT Column1, Column2, ISNULL(Column3, 0) + ISNULL(Column4, 0) AS [Added Values]FROM Table


La función Nz () de VBA se puede usar en su consulta de MS Access.

Esta función sustituye a NULL por el valor en el parámetro dado.

SELECT Column1, Column2, Nz(Column3, 0) + Nz(Column4, 0) AS [Added Values] FROM Table


Según Allen Browne , la manera más rápida es usar IIF(Column3 is Null; 0; Column3) porque tanto NZ como ISNULL son funciones de VBA y llamar a las funciones de VBA ralentiza las consultas de JET.


En la definición de su tabla, establezca el valor predeterminado para Column3 y Column4 en cero, por lo tanto, cuando se agrega un registro sin valor en esas columnas, el valor de la columna será cero. Por lo tanto, nunca tendrá que preocuparse por los valores nulos en las consultas.


Incluso más limpia sería la función nz

nz (column3, 0)