[Tự Học SQL] Tìm Hiểu Về Giá Trị NULL Và Hàm IFNULL(), ISNULL ...
Có thể bạn quan tâm
🔥CHỌN LỌC TOP NHỮNG KHOÁ HỌC LẬP TRÌNH ONLINE NHIỀU NGƯỜI THEO HOC TẠI ĐÂY🔥
Bài này cafedev chia sẻ cho ace về cách sử dụng giá trị NULL và hàm IFNULL(), ISNULL(), COALESCE(), and NVL() trong SQL để lấy ra dữ liệu theo ý muốn của mình.
Lưu ý: Các bạn tham khảo bài giới thiệu này để lấy dữ liệu mẫu, cấu trúc và chạy các ví dụ của toàn bộ series này nha. Khi bạn thực hành mà không tìm thấy kết quả và không xảy ra lỗi thì có thể dữ liệu của bạn không tồn tại, vì vậy, bạn có thể insert thêm data vào bảng và thực hành lại nha.
1. Giá trị NULL là gì?
Trường có giá trị NULL là trường không có giá trị.
Nếu một trường trong bảng là tùy chọn, có thể chèn dữ liệu mới hoặc cập nhật dữ liệu mà không cần thêm giá trị vào trường này. Sau đó, trường sẽ được lưu với giá trị NULL.
Lưu ý: Giá trị NULL khác với giá trị 0 hoặc trường chứa khoảng trắng. Trường có giá trị NULL là trường đã bị bỏ trống trong quá trình tạo dữ liệu!
2. Làm thế nào để kiểm tra giá trị NULL?
Không thể kiểm tra các giá trị NULL bằng các toán tử so sánh, chẳng hạn như =, .
Thay vào đó, chúng ta sẽ phải sử dụng các toán tử IS NULL và IS NOT NULL.
Cú pháp IS NULL
SELECT column_names FROM table_name WHERE column_name IS NULL;Cú pháp IS NOT NULL
SELECT column_names FROM table_name WHERE column_name IS NOT NULL;Ví dụ: IS NULL
Toán tử IS NULL được sử dụng để kiểm tra các giá trị trống (giá trị NULL).
SQL sau liệt kê tất cả các khách hàng có giá trị NULL trong trường “Address”:
/* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam @author cafedevn Contact: [email protected] Fanpage: https://www.facebook.com/cafedevn Group: https://www.facebook.com/groups/cafedev.vn/ Instagram: https://instagram.com/cafedevn Twitter: https://twitter.com/CafedeVn Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/ Pinterest: https://www.pinterest.com/cafedevvn/ YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/ */ SELECT CustomerName, ContactName, Address FROM Customers WHERE Address IS NULL;Mẹo: Luôn sử dụng IS NULL để tìm kiếm các giá trị NULL.
Ví dụ: IS NOT NULL
Toán tử IS NOT NULL được sử dụng để kiểm tra các giá trị không trống (giá trị NOT NULL).
SQL sau liệt kê tất cả các khách hàng có giá trị trong trường “Address”:
SELECT CustomerName, ContactName, Address FROM Customers WHERE Address IS NOT NULL;3. Hàm IFNULL(), ISNULL(), COALESCE(), and NVL()
Ta có bảng:
| P_Id | ProductName | UnitPrice | UnitsInStock | UnitsOnOrder |
|---|---|---|---|---|
| 1 | Jarlsberg | 10.45 | 16 | 15 |
| 2 | Mascarpone | 32.56 | 23 | |
| 3 | Gorgonzola | 15.67 | 9 | 20 |
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:
/* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam @author cafedevn Contact: [email protected] Fanpage: https://www.facebook.com/cafedevn Group: https://www.facebook.com/groups/cafedev.vn/ Instagram: https://instagram.com/cafedevn Twitter: https://twitter.com/CafedeVn Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/ Pinterest: https://www.pinterest.com/cafedevvn/ YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/ */ 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;Lưu ý: Các bạn tham khảo bài giới thiệu nàyđể lấy dữ liệu mẫu và chạy các ví dụ của toàn bộ series này nha. Khi bạn thực hành mà không tìm thấy kết quả và không xảy ra lỗi thì có thể dữ liệu của bạn không tồn tại, vì vậy, bạn có thể insert thêm data vào bảng và thực hành lại nha.
Full series tự học SQL từ cơ bản tới nâng cao tại đây nha.
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
- Group Facebook
- Fanpage
- Youtube
- Trang chủ
Chào thân ái và quyết thắng!
Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!
Từ khóa » Câu Lệnh Nvl
-
Hai Ví Dụ Thực Tế Về Chức Năng NVL Của Oracle
-
Hàm NVL – Oracle/PLSQL | Học Toàn Tập
-
Các Hàm SQL ISNULL (), NVL (), IFNULL () Và COALESCE ()
-
SQL NULL Functions - TRẦN VĂN BÌNH MASTER
-
Oracle NVL() Function By Practical Examples
-
Chức Năng Oracle - Go Coding
-
ORACLE SQL Nhung Flashcards | Quizlet
-
Câu Lệnh Truy Vấn Oracle - TaiLieu.VN
-
Oracle Và SQL Cơ Bản - Tài Liệu Text - 123doc
-
NVL: CTCP Tập đoàn Đầu Tư Địa ốc No Va - Thống Kê Giao Dịch
-
Tổng Hợp Các Câu Lệnh... - Trần Văn Bình - Chuyên Gia Oracle
-
Quy Trình Từ Sản Xuất đến Nhập Kho Của SS4U Express
-
Hive Các Hàm Có điều Kiện Với Các Ví Dụ