SQL NULL 函數(shù)

sql null 函數(shù)

用來判斷字段的值是否為 null,包括:isnull()、nvl()、ifnull() 和 coalesce() 函數(shù)。

請(qǐng)看下面的 "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,那么結(jié)果是 null。

微軟的 isnull() 函數(shù)用于規(guī)定如何處理 null 值。

nvl()、ifnull() 和 coalesce() 函數(shù)也可以達(dá)到相同的結(jié)果。

在這里,我們希望 null 值為 0。

下面,如果 "unitsonorder" 是 null,則不會(huì)影響計(jì)算,因?yàn)槿绻凳?null 則 isnull() 返回 0:

 

1. sql server / ms access

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

 

2. oracle

oracle 沒有 isnull() 函數(shù)。不過,我們可以使用 nvl() 函數(shù)達(dá)到相同的結(jié)果:

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

 

3. mysql

mysql 也擁有類似 isnull() 的函數(shù)。不過它的工作方式與微軟的 isnull() 函數(shù)有點(diǎn)不同。

在 mysql 中,我們可以使用 ifnull() 函數(shù),如下所示:

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

或者我們可以使用 coalesce() 函數(shù),如下所示:

select productname,unitprice*(unitsinstock+coalesce(unitsonorder,0)) from products
相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频