SQL NULL 函数

sql null 函数

用来判断字段的值是否为 null,包括:isnull()、nvl()、ifnull() 和 coalesce() 函数。

请看下面的 "products" 表:

p_id productname unitprice unitsinstock unitsonorder
1 jarlsberg 10.45 16 15
2 mascarpone 32.56 23
3 gorgonzola 15.67 9 20

假如 "unitsonorder" 是可选的,而且可以包含 null 值。

我们使用下面的 select 语句:

select productname,unitprice*(unitsinstock+unitsonorder) from products

在上面的范例中,如果有 "unitsonorder" 值是 null,那么结果是 null。

微软的 isnull() 函数用于规定如何处理 null 值。

nvl()、ifnull() 和 coalesce() 函数也可以达到相同的结果。

在这里,我们希望 null 值为 0。

下面,如果 "unitsonorder" 是 null,则不会影响计算,因为如果值是 null 则 isnull() 返回 0:

 

1. sql server / ms access

select productname,unitprice*(unitsinstock+isnull(unitsonorder,0)) from products

 

2. oracle

oracle 没有 isnull() 函数。不过,我们可以使用 nvl() 函数达到相同的结果:

select productname,unitprice*(unitsinstock+nvl(unitsonorder,0)) from products

 

3. mysql

mysql 也拥有类似 isnull() 的函数。不过它的工作方式与微软的 isnull() 函数有点不同。

在 mysql 中,我们可以使用 ifnull() 函数,如下所示:

select productname,unitprice*(unitsinstock+ifnull(unitsonorder,0)) from products

或者我们可以使用 coalesce() 函数,如下所示:

select productname,unitprice*(unitsinstock+coalesce(unitsonorder,0)) from products
相关文章