SQL Null设置为零以进行添加

时间:2020-03-06 14:45:43  来源:igfitidea点击:

我有一个SQL查询(MS Access),我需要添加两列,其中任一列都可能为null。例如:

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

其中Column3或者Column4可以为null。在这种情况下,我希望将null视为零(因此," 4 + null = 4,null + null = 0")。

关于如何做到这一点有什么建议吗?

解决方案

由于Access中的ISNULL是布尔函数(一个参数),因此请像下面这样使用它:

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

使用ISNULL替换命令:

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

使用COALESCE。

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

更加清洁的将是nz功能

nz (column3, 0)

VBA中的Nz()函数可以在MS Access查询中使用。

此函数用NULL代替给定参数中的值。

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