Coalesce trong SQL server là hàm được sử dụng rất nhiều, chuyên sử dụng cho những chương trình phức tạp. Nếu bạn muốn nâng cao kỹ năng của mình, nhất định phải hiểu sâu về cách dùng hàm này. Vậy hàm coalesce trong SQL server là gì? Cùng Comdy tìm hiểu chi tiết qua bài viết này nhé.
Hàm coalesce trong SQL Server – Coalesce trong SQL là gì?
-
Tìm hiểu chi tiết về hàm coalesce trong SQL Server
Coalesce SQL là gì?
Coalesce là gì? Trong SQL, hàm COALESCE được sử dụng để trả về giá trị đầu tiên không phải là NULL từ một danh sách các biểu thức. Nó hữu ích khi bạn muốn lấy giá trị không NULL đầu tiên từ một số cột hoặc biểu thức.
Hàm coalesce trong SQL Server hay coalesce trong mySQL chấp nhận một tập các đối số, đánh giá chúng theo trình tự và trả về đối số không rỗng đầu tiên.
Sau đây minh họa cú pháp của biểu thức coalesce sql:
COALESCE(e1,[e2,...,en])
Trong cú pháp này, e1, e2,… en là các biểu thức vô hướng trả về các giá trị vô hướng (scalar value). Biểu thức COALESCE trả về biểu thức không NULL đầu tiên. Nếu tất cả các biểu thức đánh giá là NULL, thì biểu thức COALESCE trả về NULL;
Bởi vì sql coalesce là một biểu thức, bạn có thể sử dụng nó trong bất kỳ mệnh đề chấp nhận một biểu thức như SELECT, WHERE, GROUP BY và HAVING.
Ví dụ về biểu thức coalesce SQL server
-
Lấy các ví dụ cụ thể về biểu thức coalesce SQL server
Biểu thức COALESCE trong SQL Server với dữ liệu chuỗi ký tự
Ví dụ sau sử dụng biểu thức coalesce in sql server để trả về chuỗi ‘Hi’ vì nó là đối số không rỗng đầu tiên:
SELECT COALESCE(NULL, 'Hi', 'Hello', NULL) result;
Đây là đầu ra:
result ------ Hi (1 row affected)
Biểu thức COALESCE trong SQL Server với dữ liệu số
Ví dụ này sử dụng biểu thức coalesce in sql để đánh giá danh sách các đối số và trả về số đầu tiên:
SELECT COALESCE(NULL, NULL, 100, 200) result;
Kết quả như sau:
result ----------- 100 (1 row affected)
Biểu thức COALESCE trong SQL Server để sử dụng dữ liệu có sẵn
Đầu tiên, hãy tạo một bảng mới có tên salaries để lưu trữ thông tin lương của nhân viên:
CREATE TABLE salaries ( staff_id INT PRIMARY KEY, hourly_rate decimal, weekly_rate decimal, monthly_rate decimal, CHECK( hourly_rate IS NOT NULL OR weekly_rate IS NOT NULL OR monthly_rate IS NOT NULL) );
Mỗi nhân viên chỉ có thể có một suất theo giờ, hàng tuần hoặc hàng tháng.
Thứ hai, chèn một số hàng vào bảng salaries:
INSERT INTO salaries( staff_id, hourly_rate, weekly_rate, monthly_rate ) VALUES (1,20, NULL,NULL), (2,30, NULL,NULL), (3,NULL, 1000,NULL), (4,NULL, NULL,6000); (5,NULL, NULL,6500);
Thứ ba, truy vấn dữ liệu từ bảng salaries:
SELECT staff_id, hourly_rate, weekly_rate, monthly_rate FROM salaries ORDER BY staff_id;
Thứ tư, tính toán hàng tháng cho mỗi nhân viên bằng cách sử dụng biểu thức sql server coalesce như được hiển thị trong truy vấn sau:
SELECT staff_id, COALESCE( hourly_rate*22*8, weekly_rate*4, monthly_rate ) monthly_salary FROM salaries;
Trong ví dụ này, chúng tôi sử dụng biểu thức COALESCE để trả về tập kết quả chỉ có giá trị không NULL tìm thấy trong cột hourly_rate, weekly_rate và monthly_rate.
Biểu thức coalesce so với biểu thức CASE
-
Biểu thức coalesce với biểu thức CASE đều trả về cùng 1 kết quả trong SQL server
Biểu thức COALESCE là một cú pháp thân thiện của biểu thức CASE.Các biểu thức sau trả về cùng một kết quả:
COALESCE(e1,e2,e3) CASE WHEN e1 IS NOT NULL THEN e1 WHEN e2 IS NOT NULL THEN e2 ELSE e3 END
Lưu ý rằng trình tối ưu hóa truy vấn có thể sử dụng biểu thức CASE để viết lại biểu thức COALESCE.
Coalesce trong postgreSQL là gì?
-
Coalesce trong postgreSQL được sử dụng để trả về giá trị đầu tiên không phải là NULL từ một danh sách các biểu thức
Các biểu thức (expression1, expression2, …, expression_n) sẽ được kiểm tra theo thứ tự. Hàm sẽ trả về giá trị của biểu thức đầu tiên không phải là NULL. Nếu tất cả các biểu thức đều NULL, thì COALESCE sẽ trả về NULL.
Cách dùng hàm coalesce trong oracle có giống với SQL không?
Hàm coalesce có thay thế giá trị null trong SQL không?
Hàm COALESCE trong SQL được sử dụng để thay thế giá trị NULL bằng một giá trị khác. Khi bạn có một danh sách các biểu thức, hàm COALESCE sẽ trả về giá trị của biểu thức đầu tiên không phải là NULL. Nếu tất cả các biểu thức đều NULL, thì COALESCE sẽ trả về NULL hoặc giá trị mặc định bạn chỉ định.
Ví dụ, nếu bạn muốn thay thế giá trị NULL trong cột column1 bằng giá trị mặc định ‘DefaultValue’, bạn có thể sử dụng hàm COALESCE như sau:
SELECT COALESCE(column1, ‘DefaultValue’) AS Result
FROM your_table;
Trong trường hợp ở trên, nếu như column1 là NULL, kết quả sẽ là ‘DefaultValue’. Nhưng nếu column1 không phải là NULL, kết quả sẽ là giá trị của column1.
Case when trong SQL là gì?
-
Câu lệnh case when khá tương đồng với câu lệnh if trong sql về mặt chức năng
Case là câu lệnh có tác dụng thiết lập điều kiện rẽ nhánh. Câu lệnh case when khá tương đồng với câu lệnh if trong sql về mặt chức năng.
Có 2 định dạng hàm case như sau:
- Simple case: Hàm case ở dạng đơn giản có chức năng đối chiếu 1 biểu thức cụ thể với 1 bộ biểu thức đơn giản để xác định kết quả.
- Searched case: Hàm case ở dạng tìm kiếm được dùng với mục đích đánh giá 1 bộ biểu thức boolean để xác định kết quả.
Cú pháp của câu lệnh case when trong SQL server
Simple case
CASE bieuthuc_dauvao
WHEN bieuthuc_1 THEN ketqua_1
WHEN bieuthuc_2 THEN ketqua_2
…
WHEN bieuthuc_n THEN ketqua_n
ELSE ketqua_khac
END
Searches case
CASE
WHEN dieukien_1 THEN ketqua_1
WHEN dieukien_2 THEN ketqua_2
…
WHEN dieukien_n THEN ketqua_n
ELSE ketqua_khac
END
Kết lại
Trên đây là toàn bộ chia sẻ của Comdy về hàm coalesce in SQL server. Hi vọng những thông tin, kiến thức hữu ích trong bài viết này sẽ giúp bạn xử lý các chương trình, bài toán một cách nhanh chóng, chính xác, hiệu quả. Xin cám ơn vì đã theo dõi, ủng hộ!