Xử lý các giá trị NULL với ISNULL và COALESCE trong SQL

Xử lý các giá trị NULL với ISNULL và COALESCE

Khi làm việc với SQL, các lập trình viên thường phải đối mặt với các tình huống cần xử lý giá trị NULL một cách hiệu quả. SQL cung cấp hai hàm phổ biến là ISNULL và COALESCE để giải quyết vấn đề này.

Khi truy vấn dữ liệu không tránh khỏi dữ liệu bị thiếu, chẳng hạn truy vấn đơn giản thông tin khách hàng như sau:

Ví dụ như bên dưới khi truy vấn thì giá trị MiddleName mang giá trị NULL ở dòng 2, dòng 5 và dòng 9: 

Để xử lý giá trị NULL này chúng ta có thể sử dụng ISNULLCOALESCE. Đầu tiên đối với ISNULL: 

Hàm ISNULL 

Cú pháp: 

ISNULL(expression, replacement_value) 

+ expression: Giá trị cần kiểm tra xem có phải NULL hay không.
+ replacement_value: Giá trị sẽ được trả về nếu expressionNULL. 

Đối với ví dụ trên, hàm ISNULL được áp dụng để thay thế giá trị NULL ở cột MiddleName thành dấu gạch ngang “-” :

Kết quả sau khi truy vấn: 

Khi đó ISNULL thường sẽ được áp dụng để giải quyết giá trị bị thiếu trong MiddleName như sau: 

Kết quả trả về sau khi truy vấn, xuất hiện cột mới là Full_Name, khi những Customer có MiddleName bị thiếu sẽ bị thay thế thành “-”:

Hàm COALESCE 

Hàm COALESCE trong SQL cho phép bạn đánh giá nhiều biểu thức và trả về giá trị đầu tiên không phải NULL. 

Cú pháp như sau: 

COALESCE(expression1, expression2, …, expression_n) 

expression1, expression2, …, expression_n: Danh sách các biểu thức được đánh giá theo thứ tự, và biểu thức đầu tiên không phải NULL sẽ được trả về. 

Ví dụ về hàm COALESCE: 

 

Kết quả trả về từ hình ảnh bên dưới:
+ Nếu bonus1 khác NULL, kết quả là bonus1.
+ Nếu bonus1 là NULL, nhưng bonus2 khác NULL, kết quả là bonus2.
+ Nếu bonus1 và bonus2 đều là NULL truy vấn trả về “Data not found”.

 

Kết luận 

Cả hai hàm ISNULLCOALESCE đều cung cấp những cách hữu ích để xử lý giá trị NULL trong SQL. 

  • ISNULL phù hợp để thay thế giá trị NULL trong một biểu thức cụ thể. 
  • COALESCE vượt trội hơn trong việc đánh giá nhiều biểu thức và trả về giá trị đầu tiên không phải NULL. 

Hiểu được sự khác biệt giữa hai hàm này sẽ giúp bạn lựa chọn công cụ phù hợp cho từng tình huống cụ thể, cải thiện việc quản lý dữ liệu và kết quả truy vấn. 

Bằng cách tận dụng sức mạnh của ISNULLCOALESCE, bạn có thể xử lý hiệu quả các giá trị NULL trong SQL, đảm bảo truy vấn trả về kết quả chính xác và có ý nghĩa. 

Xem thêm: 

Khóa học Ứng dụng SQL trong xử lý dữ liệu 

5 lợi ích khi thành thạo ngôn ngữ SQL 

3 thử thách SQL để rèn luyện kỹ năng của bạn

Bài viết liên quan
Hàm TRIMRANGE() – Hàm xóa giá trị trống “đỉnh” hơn cả TRIM.

Như bạn đã biết hàm TRIM() trong Excel giúp loại bỏ các ký tự trống (khoảng trắng). Tương tự vậy hàm TRIMRANGE() được sử dụng để xóa các giá trị trống khỏi một phạm vi

Xem thêm
[HOẠT ĐỘNG CỘNG ĐỒNG] Cuộc thi Financial Student Contest (FSC) mùa 13 – CLB Tài chính – Chứng khoán (SeSC) – Đại học Ngoại Thương CSII TP. HCM (FTU2)

Chiều tối ngày 13/06/2025, Chung kết cuộc thi Financial Student Contest (FSC) mùa 13 do CLB Tài chính – Chứng khoán (SeSC) thuộc Đại học Ngoại Thương CSII TP. HCM (FTU2)

Xem thêm
[HOẠT ĐỘNG CỘNG ĐỒNG] Cuộc thi myInsight – MDS Datathon Challenge 2025 – CLB Toán ứng dụng & Khoa học dữ liệu (MDS) – CSII Đại học Ngoại Thương TP. HCM (FTU2)

Chiều ngày 08/06/2025 vừa qua, cuộc thi myInsight – MDS Datarthon Challenge 2025 đã chính thức tiến đến vòng chung kết dưới sự góp mặt của top 5 đội thi xuất

Xem thêm
Cảm nhận học viên khóa Excel for Analysts

“Mình rất hài lòng về tính ứng dụng thực tế và khả năng nâng cao hiệu quả công việc của khóa học.” Anh Nguyễn Trung Hòa – nhân sự ngành Kế

Xem thêm