SQL NULL Functions - TRẦN VĂN BÌNH MASTER

Hàm IFNULL (), ISNULL (), COALESCE () và NVL () trong SQL

Nhìn vào bảng "Sản phẩm" sau:

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

Giả sử rằng cột "UnitsOnOrder" là tùy chọn và có thể chứa giá trị NULL.

Nhìn vào câu lệnh SELECT sau:

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

Trong ví dụ trên, nếu bất kỳ giá trị "UnitsOnOrder" nào là NULL, kết quả sẽ là NULL.

Các giải pháp

MySQL

Hàm IFNULL () trong MySQL cho phép bạn trả về một giá trị thay thế nếu một biểu thức là NULL:

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

hoặc chúng ta có thể sử dụng hàm COALESCE () , như sau:

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

SQL Server

Hàm ISNULL () của SQL Server cho phép bạn trả về một giá trị thay thế khi một biểu thức là NULL:

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

MS Access

Hàm MS Access IsNull () trả về TRUE (-1) nếu biểu thức là giá trị rỗng, ngược lại FALSE (0):

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

Oracle

Hàm Oracle NVL () đạt được kết quả tương tự:

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

Từ khóa » Câu Lệnh Nvl Trong Sql