2013-11-01 42 views
4

我知道NULLIF(X,Y)SQLITE工作等同的功能:SQLITE的NULLIF(X,Y)函數在哪裏以及如何使用?

CASE 
    WHEN 
     X = Y 
    THEN 
     NULL 
    ELSE 
     X 
END 

和IFNULL(X,Y)函數工作等價於:

CASE 
    WHEN 
     X IS NULL 
    THEN 
     Y 
    ELSE 
     X 
END 

IFNULL(X,Y) SQLITE函數用於將Y的NULL值替換爲Y,但我無法理解SQLITE的NULLIF(X,Y)函數的用法。 請用實例解釋,所以它更有用。

+0

你Google嗎?我以這種方式發現了這種功能的良好用途。 –

+1

是的兄弟問題是谷歌搜索的結果。我只在谷歌上找到關於它的理論,所以我用示例進行了詢問,以便了解它的實時使用情況。 –

回答

12

當數據庫包含NULL值時使用IFNULL函數,但您希望將這些值作爲其他值處理;例如:

SELECT Name, IFNULL(Age, 'unknown') AS Age FROM People 

當數據庫包含 NULL特殊值NULLIF函數被使用,但要處理爲NULL。 這對集合函數特別有用。例如,讓員工認爲得到獎金,使用次數:

SELECT COUNT(NULLIF(Bonus, 0)) FROM Employees 

這是一樣的:

SELECT COUNT(*) FROM Employees WHERE Bonus != 0 

在實踐中,NULLIF不作爲經常IFNULL。

+1

將空字符串轉換爲NULL也很有用。 –

相關問題