NULLIF
函數用于將兩個表達式進行比較,如果它們相等,則返回 NULL
值;如果不相等,則返回第一個表達式的值。這個函數在處理相等條件時非常有用,因為它可以幫助你避免 NULL
值帶來的邏輯沖突。
NULLIF
函數的語法如下:
NULLIF(expression1, expression2)
其中,expression1
和 expression2
是要比較的兩個表達式。
當 expression1
和 expression2
相等時,NULLIF
函數返回 NULL
值。例如:
SELECT NULLIF(5, 5); -- 返回 NULL
當 expression1
和 expression2
不相等時,NULLIF
函數返回第一個表達式的值。例如:
SELECT NULLIF(5, 6); -- 返回 5
在處理相等條件時,你可以使用 NULLIF
函數來避免 NULL
值的影響。例如,假設你有一個表 employees
,其中包含員工的薪水信息。你想要找到薪水等于某個特定值的員工數量,但你不希望將薪水為 NULL
的員工計入結果中。在這種情況下,你可以使用 NULLIF
函數來處理相等條件:
SELECT COUNT(*)
FROM employees
WHERE NULLIF(salary, target_salary) IS NOT NULL;
在這個查詢中,target_salary
是你要比較的目標薪水值。NULLIF
函數將 salary
和 target_salary
進行比較,如果它們相等,則返回 NULL
值。IS NOT NULL
條件用于過濾掉 NULL
值,從而確保只有薪水等于目標薪水的員工被計入結果中。