sql 中 coalesce 函數(shù)用于處理 null 值,將表達(dá)式列表中的第一個(gè)非 null 值返回,如果所有表達(dá)式都為 null,則返回默認(rèn)值。它主要用于替換 null 值、提供默認(rèn)值和級(jí)聯(lián)檢查。如需替換 null 值,可使用 coalesce(expr1, expr2, …)。提供默認(rèn)值,可使用 coalesce(expr1, expr2, …, default_value)。級(jí)聯(lián)檢查,可使用 coalesce(expr1, expr2, …)。
SQL 中 COALESCE 函數(shù)用法
COALESCE 函數(shù)是 SQL 中一個(gè)常用的函數(shù),用于處理 NULL 值。它可以將多個(gè)表達(dá)式作為一個(gè)參數(shù)列表,并返回第一個(gè)非 NULL 值。如果所有表達(dá)式都為 NULL,則返回默認(rèn)值。
語法
COALESCE(expr1, expr2, ..., exprN, default_value)
其中:
expr1, expr2, …, exprN:要檢查的表達(dá)式。
default_value:如果所有表達(dá)式都為 NULL,則返回的默認(rèn)值(可選)。
用法
COALESCE 函數(shù)主要用于處理以下場景:
替換 NULL 值:COALESCE 函數(shù)可以將 NULL 值替換為其他非 NULL 值,從而確保數(shù)據(jù)完整性。
提供默認(rèn)值:當(dāng)沒有可用數(shù)據(jù)時(shí),COALESCE 函數(shù)可以提供一個(gè)默認(rèn)值,以防止錯(cuò)誤或意外結(jié)果。
級(jí)聯(lián)檢查:COALESCE 函數(shù)可以級(jí)聯(lián)檢查多個(gè)表達(dá)式,直到找到一個(gè)非 NULL 值。
示例
1. 替換 NULL 值
<code class="sql">SELECT COALESCE(name, 'Unknown') FROM users;</code>
登錄后復(fù)制
這會(huì)將 name 列中的所有 NULL 值替換為字符串 “Unknown”。
2. 提供默認(rèn)值
<code class="sql">SELECT COALESCE(age, 0) FROM users;</code>
登錄后復(fù)制
這會(huì)在 age 列中將所有 NULL 值替換為數(shù)字 0。
3. 級(jí)聯(lián)檢查
<code class="sql">SELECT COALESCE(address, city, country) FROM users;</code>
登錄后復(fù)制
這會(huì)首先檢查 address 列中的值。如果 address 為 NULL,它會(huì)檢查 city 列的值。如果 city 也為 NULL,則返回 country 列的值。
注意事項(xiàng)
COALESCE 函數(shù)不接受空參數(shù)列表。
COALESCE 函數(shù)返回第一個(gè)非 NULL 值,而不是表達(dá)式列表中所有非 NULL 值的列表。
如果所有表達(dá)式都為 NULL 且沒有提供 default_value,則 COALESCE 函數(shù)返回 NULL。






