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