在哪里以及如何使用SQLITE的NULLIF(X,Y)函数?

Yas*_*yas 4 sqlite

我知道SQLITE的NULLIF(X,Y)函数相当于:

CASE
    WHEN
        X = Y
    THEN
        NULL
    ELSE
        X
END
Run Code Online (Sandbox Code Playgroud)

和IFNULL(X,Y)功能相当于:

CASE
    WHEN
        X IS NULL
    THEN
        Y
    ELSE
        X
END
Run Code Online (Sandbox Code Playgroud)

IFNULL(X,Y)的SQLITE功能被用于替换X的NULL值到Y,但我不能了解使用SQLITE的NULLIF(X,Y)的功能.请用例子说明,这样更有用.

CL.*_*CL. 12

当数据库包含NULL值时使用IFNULL函数,但是您希望将这些值作为其他值处理; 例如:

SELECT Name, IFNULL(Age, 'unknown') AS Age FROM People
Run Code Online (Sandbox Code Playgroud)

当数据库包含 NULL的特殊值但您想要处理为NULL 时,将使用NULLIF函数.这对聚合函数尤其有用.例如,要获得获得奖金的员工数量,请使用:

SELECT COUNT(NULLIF(Bonus, 0)) FROM Employees
Run Code Online (Sandbox Code Playgroud)

这与:

SELECT COUNT(*) FROM Employees WHERE Bonus != 0
Run Code Online (Sandbox Code Playgroud)

实际上,NULLIF不像IFNULL那样频繁使用.