SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数 请看下面的 "roducts" 表:
假如 "已订购" 是可选的,而且可以包含 NULL 值。 我们使用如下 SELECT 语句: - SELECT ProductName,UnitPrice * (UnitsInStock+UnitsOnOrder)
- FROM Products
复制代码在上面的例子中,如果有 "UnitsOnOrder" 值是 NULL,那么结果是 NULL。 微软的 ISNULL() 函数用于规定如何处理 NULL 值。 NVL(), IFNULL() 和 COALESCE() 函数也可以达到相同的结果。 在这里,我们希望 NULL 值为 0。 下面,如果 "UnitsOnOrder" 是 NULL,则不利于计算,因此如果值是 NULL 则 ISNULL() 返回 0。
SQL Server :
- SELECT ProductName,UnitPrice * (UnitsInStock+ISNULL(UnitsOnOrder,0))
- FROM Products
复制代码 Oracle:
Oracle 没有 ISNULL() 函数。不过,我们可以使用 NVL() 函数达到相同的结果:
- SELECT ProductName,UnitPrice * (UnitsInStock+NVL(UnitsOnOrder,0))
- FROM Products
复制代码 MySQLMySQL 也拥有类似 ISNULL() 的函数。不过它的工作方式与微软的 ISNULL() 函数有点不同。 在 MySQL 中,我们可以使用 IFNULL() 函数,就像这样: - SELECT ProductName,UnitPrice * (UnitsInStock+IFNULL(UnitsOnOrder,0))
- FROM Products
复制代码或者我们可以使用 COALESCE() 函数,就像这样: - SELECT ProductName,UnitPrice * (UnitsInStock+COALESCE(UnitsOnOrder,0))
- FROM Products
复制代码那么什么是COALESCE()函数呢??请听下回分解....
|