首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> SQL 基礎

SQL NULL 處理函數大全:ISNULL、NVL、IFNULL、COALESCE 跨平台用法

     編輯:SQL 基礎

SQL NULL 值處理函數完整指南


問題情境

假設 Products 表中 UnitsOnOrder 欄位允許 NULL 值:

P_IdProductNameUnitPriceUnitsInStockUnitsOnOrder
1Jarlsberg10.451615
2Mascarpone32.5623
3Gorgonzola15.67920

若直接計算 UnitPrice * (UnitsInStock + UnitsOnOrder),當 UnitsOnOrder 為 NULL 時,整個運算結果會變成 NULL。我們需要將 NULL 視為 0 參與運算。


各資料庫 NULL 處理函數對照

SQL Server / MS Access:ISNULL()

SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products;

Oracle:NVL()

SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0))
FROM Products;

MySQL:IFNULL() 或 COALESCE()

-- IFNULL 專用
SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products;

-- COALESCE 標準 SQL,跨平台通用
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products;

建議: COALESCE() 為 ANSI SQL 標準函數,支援多參數且跨平台相容性最佳,優先推薦使用。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved