请看下面的"Products"表:
假如"UnitsOnOrder"是可选的,而且可以包含NULL值。
我们使用下面的SELECT语句:
SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder) FROM Products
在上面的示例中,如果有"UnitsOnOrder"值是NULL,那么结果是NULL。
微软的ISNULL()函数用于规定如何处理NULL值。
NAL()、IFNULL()和COALESCE()函数也可以达到相同的效果。
在这里,我们希望NULL值为0.
下面,如果"UnitsOnOrder"是NULL,则不会影响计算,因为如果值是NULL则ISNULL()返回0;
SQL Server/MS Access
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products
Oracle
SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0))
FROM Products
MySQL
SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
FROM Products
SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
FROM Products
参考:
https://www.yuque.com/docs/share/5b93e99c-2d68-4a84-85ad-2db678e6b7a5