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