
Khi làm việc với cơ sở dữ liệu trong SQL Server, bạn chắc chắn sẽ gặp phải khái niệm NULL. Đây là một trong những yếu tố quan trọng nhưng cũng dễ gây nhầm lẫn, đặc biệt với người mới bắt đầu. Nếu không hiểu đúng về NULL, truy vấn của bạn có thể trả về kết quả sai lệch hoặc gây ra lỗi khó phát hiện. Vậy NULL thật sự là gì? Và nó ảnh hưởng như thế nào đến quá trình truy vấn, tính toán trong SQL Server? Bài viết dưới đây sẽ giúp bạn làm rõ.
NULL là gì trong SQL?

Trong SQL Server, NULL không phải là một giá trị cụ thể như số 0 hay chuỗi rỗng (' '). Thay vào đó, NULL biểu thị cho một giá trị chưa xác định, không có, hoặc chưa được nhập.
Ví dụ:
Một khách hàng chưa cung cấp số điện thoại khi đăng ký tài khoản, hệ thống sẽ lưu trường SoDienThoai là NULL. Điều này không có nghĩa là họ nhập số 0, mà là họ chưa nhập gì cả – thông tin này chưa tồn tại.
Hiểu đúng khái niệm NULL rất quan trọng, vì nó ảnh hưởng trực tiếp đến cách bạn viết câu lệnh SQL, xử lý điều kiện, thống kê hoặc xuất báo cáo.
NULL ảnh hưởng như thế nào đến truy vấn?
1. Không thể dùng dấu = để so sánh với NULL

Câu lệnh (sai) sẽ không trả về kết quả nào, vì trong SQL, NULL = NULL không được coi là đúng. So sánh với NULL không trả về TRUE hay FALSE, mà là một trạng thái UNKNOWN.
MẸO: Cũng có thể dùng (IS NOT NULL) để tìm ra các giá trị khác NULL trong bảng theo cách (đúng).
2. NULL ảnh hưởng đến các phép tính và thống kê

NULL sẽ bị bỏ qua trong các hàm tính toán như:
- SUM, AVG: chỉ tính các giá trị khác NULL.
- COUNT(TenCot): chỉ đếm các dòng có giá trị.
- COUNT(*): đếm tất cả, kể cả dòng chứa NULL.
3. Biểu thức logic có chứa NULL gây kết quả không xác định
NULL làm cho các biểu thức logic trở nên khó đoán.
Ví dụ:
Kết quả trả về sẽ là 'Không xác định', vì NULL = NULL trả về UNKNOWN.
Do đó, trong các biểu thức điều kiện, bạn nên tránh so sánh trực tiếp với NULL và thay bằng các từ khóa phù hợp như IS NULL.
4. Sử dụng hàm xử lý NULL
SQL Server hỗ trợ một số hàm giúp bạn kiểm soát NULL hiệu quả:
- ISNULL(cột, giá_trị_thay_thế)
Trả về giá trị thay thế nếu cột là NULL.
- COALESCE(g1, g2, ...)
Trả về giá trị đầu tiên khác NULL trong danh sách.
Hai hàm này rất hữu ích khi bạn cần đảm bảo luôn có giá trị hiển thị trong báo cáo, in hóa đơn, xuất dữ liệu…
Kết luận
NULL là một phần không thể thiếu trong cơ sở dữ liệu, nhưng cũng là yếu tố dễ gây nhầm lẫn nếu bạn không hiểu rõ bản chất. Trong SQL Server, NULL biểu thị cho sự vắng mặt của dữ liệu — không phải là một giá trị cụ thể. Do đó, bạn cần xử lý đúng cách để tránh sai lệch trong kết quả truy vấn, tính toán và báo cáo.
Khi viết câu lệnh SQL, hãy luôn nhớ rằng:
- Dùng IS NULL thay vì = NULL
- Sử dụng các hàm như ISNULL hoặc COALESCE để thay thế giá trị
- Cẩn thận khi dùng NULL trong điều kiện logic hoặc hàm thống kê
Nếu bạn hiểu rõ cách xử lý NULL, khả năng viết truy vấn chính xác và hiệu quả sẽ được cải thiện rõ rệt.