Trong SQL chúng ta thường bắt gặp các giá trị không xác định hay còn được gọi là giá trị NULL. Thỉnh thoảng khi truy vấn dữ liệu bạn cần xử lý các giá trị NULL để kết quả trả về gọn gàng hoặc thay thế bằng giá trị khác nếu cần.
Để làm được điều đó, bạn sẽ cần đến hàm COALESCE trong SQL. Vậy cú pháp và cách sử dụng như nào? Cùng Gitiho tìm hiểu ngay trong bài viết này nhé!
Hiểu theo cách đơn giản, hàm COALESCE hỗ trợ trả về các giá trị không phải null đầu tiên trong danh sách. Trong trường hợp tất cả các bản ghi đều có giá trị null thì hàm sẽ trả về kết quả null.
Cú pháp thực hiện như sau:
SELECT COALESCE(value1, value2, value3, ...)
Trong đó:
Các phiên bản SQL Server có thể sử dụng được hàm COALESCE: SQL Server 2005, SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017.
Giả sử bạn đang cần truy vấn thông tin khách hàng từ bảng thông tin khách hàng. Tuy nhiên một số khách hàng lại không cung cấp số điện thoại, nhưng có email.
Phone | |
123-456789 | NULL |
NULL | jane.doe@gmail.com |
NULL | NULL |
Yêu cầu: Bạn cần lấy số điện thoại (nếu có), không thì trả về là email. Cả 2 không có thì trả về thông báo không tồn tại thông tin liên lạc.
Để thực hiện yêu cầu trên, bạn viết cú pháp sau:
SELECT COALESCE(Phone, Email, 'No contact info available') AS ContactInfo
FROM Customers;
Phân tích cú pháp trên để giúp bạn dễ hiểu hơn, chạy công thức thì bạn sẽ thấy:
Kết quả trả về:
ContactInfo |
123-456789 |
jane.doe@gmail.com |
No contact info available |
Theo lý thuyết thì cả COALESCE và ISNULL đều có chức năng trả về giá trị thay thế khi gặp giá trị NULL. Tuy nhiên, ứng dụng thực tế thì chúng có những điểm khác biệt như sau:
Còn ISNULL chỉ kiểm tra một giá trị duy nhất bằng cú pháp ISNULL(expression, value). Nếu giá trị đó là NULL, nó sẽ thay thế bằng giá trị mặc định bạn cung cấp. Trong đó, expression là giá trị cần kiểm tra và value là giá trị thay thế nếu expression là NULL.
Để hiểu thêm về các hàm và câu lệnh truy vấn quan trọng SQL, bạn có thể đăng ký học SQL cơ bản đến nâng cao với khóa học sau tại Gitiho:
SQLG01 - Truy vấn dữ liệu với SQL
Nimbus Academy
Bài học trên đây Gitiho đã hướng dẫn bạn chi tiết về cú pháp và cách sử dụng hàm COALESCE trong SQL. Đừng quên thực hành ngay và áp dụng vào thực tế công việc để hiểu và nhớ lâu hơn về cách sử dụng hàm này nha. Chúc bạn thành công!
Xem thêm:
Hàm CONCAT trong SQL để nối 2 hay nhiều chuỗi
Cách dùng hàm CHARINDEX trong SQL để xác định vị trí của chuỗi
Khóa học giúp bạn làm chủ ngôn ngữ truy vấn dữ liệu phổ biến SQL từ cơ bản đến nâng cao. Từ đó có thể tự tin xây dựng, truy vấn, và tối ưu hóa các cơ sở dữ liệu phức tạp, hỗ trợ phân tích, làm báo cáo và ra quyết định kinh doanh một cách hiệu quả.
Đăng ký học thử để trải nghiệm ngay hôm nay!