这几个函数是但字段为空时如何处理,
例如有"Products" 表:
1 | computer | 699 | 25 | 15 |
2 | printer | 365 | 36 | |
3 | telephone | 280 | 159 | 57 |
SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder) FROM Products
当UnitsOnOrder为null 时UnitPrice*(UnitsInStock+UnitsOnOrder)返回的也是null,
这样怎么办呢,
sql中有ISNULL,NVL,IFNULL,COALESCE,
其中 ISNULL是 SQL Server 和 MS Access中的方法,
NVL是Oracle中的方法
IFNULL和COALESCE是MySql中的方法
用法是一样的:
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0)) FROM Products
SELECT ProductName,UnitPrice*(UnitsInStock+NVL(UnitsOnOrder,0)) FROM Products
SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0)) FROM Products
SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0)) FROM Products
详细见:http://www.w3school.com.cn/sql/sql_isnull.asp