ifnull 函數(shù)用于檢查表達式是否為 null,如果是則返回指定的默認值,否則返回表達式的值。它可以防止空值導(dǎo)致錯誤,允許操作空值,提高查詢的可讀性。用法包括:將空值替換為默認值、排除空值進行計算和嵌套使用處理多個空值情況。
SQL 中 IFNULL 的用法
IFNULL 函數(shù)用于檢查表達式是否為 NULL,如果為 NULL,則返回指定的默認值;如果不是 NULL,則返回表達式的值。
語法:
<code class="sql">IFNULL(expression, default_value)</code>
登錄后復(fù)制
其中:
expression:要檢查的表達式。
default_value:如果 expression 為 NULL 時要返回的值。
用法:
IFNULL 函數(shù)主要用于將空值替換為指定的默認值。例如,以下查詢使用 IFNULL 將 name 列中的空值替換為字符串 “無名”:
<code class="sql">SELECT IFNULL(name, '無名') AS name FROM table_name;</code>
登錄后復(fù)制
優(yōu)點:
防止由于空值而導(dǎo)致錯誤或意外結(jié)果。
允許在空值上執(zhí)行計算或操作。
提高查詢的可讀性和可維護性。
注意事項:
default_value 可以是任何數(shù)據(jù)類型。
如果 expression 和 default_value 的數(shù)據(jù)類型不匹配,則 SQL 引擎將自動進行隱式轉(zhuǎn)換。
IFNULL 函數(shù)也可以嵌套使用,以處理多個空值情況。
示例:
將 age 列中的空值替換為 0:
<code class="sql">SELECT IFNULL(age, 0) AS age FROM table_name;</code>
登錄后復(fù)制
在 COUNT() 函數(shù)中排除空值:
<code class="sql">SELECT COUNT(IFNULL(name, '')) AS num_names FROM table_name;</code>
登錄后復(fù)制
使用嵌套的 IFNULL 函數(shù)處理多個空值:
<code class="sql">SELECT IFNULL(name, IFNULL(nickname, '無名')) AS name FROM table_name;</code>
登錄后復(fù)制






