SQL中的NVL函數是一個用于處理空值(NULL)的函數
NVL(expression, replacement_value)
其中,expression
是要檢查的字段或表達式,replacement_value
是當expression
為NULL時,將用作替換的值。
功能:
NVL函數用于在查詢結果中替換NULL值。當expression
為NULL時,NVL函數會返回replacement_value
;否則,返回expression
的值。
示例:
假設有一個名為employees
的表,包含id
、name
和salary
列。我們想要查詢所有員工的ID、姓名和薪水,但是如果薪水為NULL,我們希望顯示0。可以使用NVL函數實現這個需求:
SELECT id, name, NVL(salary, 0) AS salary
FROM employees;
SELECT id, name, COALESCE(salary, 0) AS salary
FROM employees;
SELECT id, name, IFNULL(salary, 0) AS salary
FROM employees;
SELECT id, name,
CASE WHEN salary IS NULL THEN 0 ELSE salary END AS salary
FROM employees;
總結:NVL函數是Oracle數據庫特有的函數,用于處理空值。與其他空值處理方法相比,NVL函數的語法簡單,易于使用。然而,由于NVL函數不是ANSI SQL標準的一部分,因此在其他數據庫中可能無法使用。在這種情況下,可以使用COALESCE函數或IFNULL函數(取決于數據庫類型)來實現類似的功能。