SQL的字段判空

2021-09-30 06:11:36 字數 1204 閱讀 9139

請看下面的 "products" 表:

p_id

productname

unitprice

unitsinstock

unitsonorder

1computer

69925152

printer

36536

3telephone

28015957

假如 "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。

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

from products

oracle 沒有 isnull() 函式。不過,我們可以使用 nvl() 函式達到相同的結果:

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

from products

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

在 mysql 中,我們可以使用 ifnull() 函式,就像這樣:

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

from products

或者我們可以使用 coalesce() 函式,就像這樣:

select productname,unitprice*(unitsinstock+coalesce(unitsonorder,0))

from products

SQL的學習筆記 判空時賦值

sql做統計查詢時,經常需要在分組之後統計另乙個欄位的總數。這是往往會遇到count 待統計字段 結果為null的情況。如果直接將結果null傳送給呼叫者,對方會很難處理。於是需要在傳出判斷 若為空,則傳0。要實現這一功能,可使用isnull函式。函式呼叫方式 isnull 需要進行判空的數值,希望...

Velocity判空的方法

前端使用velocity,經常會遇到判斷是否為null的情景,通常判斷是否為null有下面幾種方法 1.if foo 判斷 foo為空,判斷非空為 if foo 2.使用 ifnull 或 ifnotnull ifnull foo 要使用這個特性必須在velocity.properties檔案中加入...

注意C Vector 的判空

在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。示例 現有矩陣 matrix 如下 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,1...