Hàm hợp nhất trong SQL

Hàm hợp nhất trong SQL

Nút nguồn: 3063852

Giới thiệu

Ngôn ngữ truy vấn có cấu trúc (SQL) là nền tảng trong quản lý cơ sở dữ liệu, cung cấp các chức năng mạnh mẽ để thao tác và truy xuất dữ liệu. Trong số các hàm này, hàm COALESCE trong SQL nổi lên như một công cụ mạnh mẽ để xử lý các giá trị NULL một cách hiệu quả.

Bài viết này sẽ khám phá cú pháp, cách sử dụng, lợi ích và ưu điểm của hàm Coalesce trong SQL. Chúng tôi cũng sẽ đi sâu vào các ví dụ cụ thể và nghiên cứu trường hợp trong cơ sở dữ liệu SQL phổ biến như SQL Server, MySQL, Oracle, PostgreSQL và SQLite. Ngoài ra, chúng tôi sẽ thảo luận về các trường hợp sử dụng phổ biến, mẹo và thủ thuật để tối ưu hóa chức năng Coalesce và các ứng dụng trong thế giới thực của nó.

Hàm hợp nhất trong SQL

Mục lục

Hàm hợp nhất trong SQL là gì?

Hàm Coalesce trong SQL trả về giá trị không phải NULL đầu tiên từ danh sách biểu thức. Phải mất nhiều đối số và đánh giá chúng theo thứ tự. Nếu đối số đầu tiên không phải là NULL thì nó sẽ được trả về. Nếu không, hàm sẽ chuyển sang đối số tiếp theo cho đến khi tìm thấy giá trị không NULL. Hàm Coalesce đặc biệt hữu ích khi xử lý các giá trị NULL trong truy vấn SQL, vì nó cho phép chúng ta xử lý chúng một cách khéo léo và cung cấp các kết quả có ý nghĩa.

Hiểu cú pháp và cách sử dụng hàm Coalesce

Cú pháp của hàm Coalesce rất đơn giản. Nó có dạng:

COALESCE(expression1, expression2, expression3, ...)

Ở đây, biểu thức 1, biểu thức 2, biểu thức 3, v.v. đại diện cho danh sách các biểu thức mà hàm Coalesce đánh giá. Hàm trả về giá trị không NULL đầu tiên từ danh sách này.

Ví dụ

Hãy xem xét một ví dụ để hiểu rõ hơn cách sử dụng hàm Coalesce. Giả sử chúng ta có một bảng tên là “Nhân viên” với các cột “Tên”, “Họ” và “Tên đệm”. Một số nhân viên có thể không có tên đệm, dẫn đến giá trị NULL trong cột “Tên đệm”. Chúng ta có thể sử dụng hàm Coalesce để truy xuất giá trị không phải NULL đầu tiên từ cột “Tên đệm” và hiển thị giá trị đó trong kết quả truy vấn của chúng ta.

Chúng tôi có bảng dưới đây.

Query

SELECT First Name, Last Name, COALESCE(Middle Name, 'N/A') AS Middle Name
FROM Employees

Đầu ra

Trong ví dụ này, nếu nhân viên có tên đệm thì tên đó sẽ được hiển thị. Nếu không, hàm Coalesce sẽ trả về 'N/A' làm tên đệm.

Lợi ích và ưu điểm của việc sử dụng chức năng hợp nhất

Chức năng Coalesce cung cấp một số lợi ích và lợi ích trong SQL truy vấn.

Thứ nhất, nó cho phép chúng ta xử lý các giá trị NULL một cách hiệu quả. Thay vì trả về NULL hoặc bỏ qua các hàng có giá trị NULL, chúng ta có thể sử dụng hàm Coalesce để cung cấp các giá trị mặc định hoặc thay thế các giá trị NULL bằng các giá trị thay thế có ý nghĩa.

Thứ hai, hàm Coalesce đơn giản hóa các truy vấn SQL của chúng ta bằng cách giảm nhu cầu về các câu lệnh điều kiện phức tạp. Thay vì viết các câu lệnh IF-ELSE dài dòng để xử lý các giá trị NULL, chúng ta có thể sử dụng hàm Coalesce để đạt được kết quả tương tự một cách chính xác và dễ đọc hơn.

Cuối cùng, hàm Coalesce nâng cao hiệu suất tổng thể của các truy vấn SQL của chúng tôi. Bằng cách xử lý hiệu quả các giá trị NULL, chúng ta có thể tránh được những tính toán không cần thiết và cải thiện thời gian thực hiện các truy vấn của mình.

Hàm hợp nhất trong SQL Server

SQL Server là một trong những hệ thống quản lý cơ sở dữ liệu quan hệ phổ biến nhất và nó cung cấp sự hỗ trợ mạnh mẽ cho chức năng Coalesce. Hãy cùng khám phá hàm Coalesce trong SQL Server và xem xét một số ví dụ và nghiên cứu điển hình.

Khám phá hàm Coalesce trong SQL Server

Trong SQL Server, hàm Coalesce hoạt động tương tự như định nghĩa chung của nó. Nó nhận nhiều đối số và trả về giá trị không NULL đầu tiên từ danh sách. Tuy nhiên, điều quan trọng cần lưu ý là kiểu dữ liệu của các đối số phải tương thích.

Ví dụ

Giả sử chúng ta có một bảng tên là “Sản phẩm” với các cột “Tên sản phẩm”, “Giá” và “Giảm giá”. Một số sản phẩm có thể không có giảm giá, dẫn đến giá trị NULL trong cột “Giảm giá”. Chúng ta có thể sử dụng hàm Coalesce để truy xuất giá trị không phải NULL đầu tiên từ cột “Giảm giá” và hiển thị giá trị đó trong kết quả truy vấn của mình.

SELECT Product Name, Price, COALESCE(Discount, 0) AS Discount
FROM Products

Trong ví dụ này, nếu một sản phẩm có giảm giá, nó sẽ được hiển thị. Nếu không, hàm Coalesce sẽ trả về 0 là mức giảm giá.

Ví dụ và nghiên cứu trường hợp trong SQL Server

Hãy xem xét một ví dụ khác để hiểu tính linh hoạt của hàm Coalesce trong SQL Server. Giả sử chúng ta có một bảng tên là “Đơn hàng” với các cột “ID đơn hàng”, “Ngày đặt hàng” và “Ngày giao hàng”. Một số đơn hàng có thể chưa có ngày giao hàng, dẫn đến giá trị NULL trong cột “Ngày giao hàng”. Chúng ta có thể sử dụng hàm Coalesce để truy xuất giá trị không phải NULL đầu tiên từ cột “Ngày vận chuyển” và hiển thị giá trị đó trong kết quả truy vấn của chúng ta.

Query

SELECT Order ID, Order Date, COALESCE(Shipped Date, 'Not Shipped Yet') AS Shipped Date
FROM Orders

Đầu ra: 

Trong ví dụ này, một đơn hàng có ngày giao hàng sẽ được hiển thị. Nếu không, hàm Coalesce sẽ trả về 'Chưa vận chuyển' làm ngày vận chuyển.

Bạn có thể thử SQL Server tại chỗ hoặc trên đám mây

Hàm hợp nhất trong MySQL

MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ phổ biến khác hỗ trợ chức năng Coalesce. Hãy cùng khám phá hàm Coalesce trong MySQL và xem xét một số ví dụ và nghiên cứu điển hình.

Khám phá chức năng hợp nhất trong MySQL

Trong MySQL, hàm Coalesce hoạt động tương tự như định nghĩa chung của nó. Nó nhận nhiều đối số và trả về giá trị không NULL đầu tiên từ danh sách. Tuy nhiên, điều quan trọng cần lưu ý là kiểu dữ liệu của các đối số phải tương thích.

Ví dụ: giả sử chúng ta có một bảng tên là “Khách hàng” với các cột “ID khách hàng”, “Tên” và “Họ”. Một số khách hàng có thể không có họ, dẫn đến giá trị NULL trong cột “Họ”. Chúng ta có thể sử dụng hàm Coalesce để truy xuất giá trị không phải NULL đầu tiên từ cột “Họ” và hiển thị giá trị đó trong kết quả truy vấn của chúng ta.

SELECT Customer ID, First Name, COALESCE(Last Name, 'N/A') AS Last Name
FROM Customers

Trong ví dụ này, nếu khách hàng có họ, họ sẽ được hiển thị. Nếu không, hàm Coalesce sẽ trả về 'N/A' làm họ.

Ví dụ và nghiên cứu trường hợp trong MySQL

Hãy xem xét một ví dụ khác để hiểu tính linh hoạt của hàm Coalesce trong MySQL. Giả sử chúng ta có một bảng tên là “Đơn hàng” với các cột “ID đơn hàng”, “Ngày đặt hàng” và “Ngày thanh toán”. Một số đơn đặt hàng có thể chưa có ngày thanh toán, dẫn đến giá trị NULL trong cột “Ngày thanh toán”. Chúng ta có thể sử dụng hàm Coalesce để truy xuất giá trị không NULL đầu tiên từ cột “Ngày thanh toán” và hiển thị giá trị đó trong kết quả truy vấn của chúng ta.

SELECT Order ID, Order Date, COALESCE(Payment Date, 'Not Paid Yet') AS Payment Date
FROM Orders

Trong ví dụ này, một đơn hàng có ngày thanh toán sẽ được hiển thị. Nếu không, hàm Coalesce sẽ trả về ngày thanh toán là 'Chưa thanh toán'.

Hàm hợp nhất trong SQL

Các trường hợp và kịch bản sử dụng phổ biến cho chức năng hợp nhất

Hàm Coalesce có thể được sử dụng trong nhiều tình huống khác nhau để xử lý các giá trị NULL một cách hiệu quả và mang lại kết quả có ý nghĩa. Hãy cùng khám phá một số trường hợp và kịch bản sử dụng phổ biến cho hàm Coalesce.

Xử lý giá trị NULL trong truy vấn SQL

Một trong những trường hợp sử dụng chính của hàm Coalesce là xử lý các giá trị NULL trong truy vấn SQL. Thay vì trả về NULL hoặc bỏ qua các hàng có giá trị NULL, chúng ta có thể sử dụng hàm Coalesce để cung cấp các giá trị mặc định hoặc thay thế các giá trị NULL bằng các giá trị thay thế có ý nghĩa. Điều này đảm bảo rằng kết quả truy vấn của chúng tôi nhất quán và mang tính thông tin.

Nối nhiều cột với sự hợp nhất

Một trường hợp sử dụng khác của hàm Coalesce là nối nhiều cột. Giả sử chúng ta có một bảng có các cột riêng biệt cho “Tên”, “Tên đệm” và “Họ”. Hàm Coalesce có thể nối các cột này và hiển thị tên đầy đủ trong kết quả truy vấn của chúng tôi. Điều này giúp loại bỏ nhu cầu thao tác chuỗi phức tạp và nâng cao khả năng đọc các truy vấn của chúng tôi.

Query

SELECT

  EmployeeID,

  COALESCE(CONCAT([First Name], ' ', [Middle Name], ' ', [Last Name]), 'No Name') AS Full Name

FROM Employees;

Chức năng kết hợp trong câu lệnh có điều kiện

Hàm Coalesce cũng có thể xử lý các giá trị NULL trong các câu lệnh có điều kiện. Ví dụ: giả sử chúng ta có một bảng có cột “Số lượng” và một cột khác cho “Số lượng tối thiểu”. Chúng ta có thể sử dụng hàm Coalesce trong câu lệnh có điều kiện để kiểm tra xem số lượng có thấp hơn số lượng tối thiểu hay không và thực hiện hành động thích hợp. Điều này giúp đơn giản hóa logic có điều kiện và làm cho các truy vấn của chúng tôi ngắn gọn hơn.

Query

SELECT
  ProductID,
  Quantity,
  MinimumQuantity,
  CASE
WHEN COALESCE(Quantity, 0) < COALESCE(MinimumQuantity, 0) THEN 'Order more'
ELSE 'Sufficient quantity'
  END AS OrderStatus
FROM Products;

Truy vấn này giả định rằng bảng của bạn có cột “ProductID” cùng với cột “Số lượng” và “Số lượng tối thiểu”. Nó sử dụng hàm COALESCE để xử lý các giá trị NULL tiềm năng trong cột “Số lượng” và “Số lượng tối thiểu”.

Mẹo và thủ thuật để tối ưu hóa chức năng liên kết

Mặc dù hàm Coalesce là một công cụ mạnh mẽ nhưng một số mẹo và thủ thuật nhất định có thể giúp chúng ta tối ưu hóa việc sử dụng hàm này và cải thiện hiệu suất của các truy vấn SQL. Hãy cùng khám phá một số mẹo và thủ thuật này.

Những cân nhắc về hiệu suất và các phương pháp hay nhất

Để tối ưu hóa hiệu suất của hàm Coalesce, điều quan trọng là phải xem xét kiểu dữ liệu của các đối số. Việc sử dụng các loại dữ liệu tương thích sẽ đảm bảo đánh giá hiệu quả và tránh các chuyển đổi loại không cần thiết. Ngoài ra, bạn chỉ nên sử dụng chức năng Coalesce khi cần thiết. Nếu phần lớn các giá trị trong một cột không phải là NULL thì việc xử lý riêng các giá trị NULL có thể sẽ hiệu quả hơn.

Sử dụng Coalesce với chỉ mục và tham gia

Trong một số trường hợp, chúng ta có thể cần sử dụng hàm Coalesce kết hợp với các chỉ mục và phép nối. Điều quan trọng là phải đảm bảo rằng các cột liên quan đến hàm Coalesce được lập chỉ mục chính xác để cải thiện hiệu suất truy vấn. Ngoài ra, khi sử dụng hàm Coalesce trong các kết nối, bạn nên sử dụng các điều kiện kết hợp thích hợp để giảm thiểu số lượng hàng được xử lý.

Tránh những cạm bẫy và sai lầm phổ biến

Khi sử dụng hàm Coalesce, việc tránh những cạm bẫy và lỗi thường gặp là điều quan trọng. Một lỗi phổ biến là sử dụng hàm Coalesce với các kiểu dữ liệu không tương thích, điều này có thể dẫn đến kết quả hoặc lỗi không mong muốn. Điều quan trọng nữa là phải xử lý các giá trị NULL một cách nhất quán trong suốt các truy vấn SQL của chúng ta để đảm bảo kết quả chính xác và đáng tin cậy.

Chức năng kết hợp trong các ứng dụng trong thế giới thực

Hàm Coalesce tìm thấy ứng dụng của nó trong nhiều tình huống thực tế khác nhau. Hãy cùng khám phá một số ứng dụng này nhé:

Chức năng hợp nhất trong phân tích và báo cáo dữ liệu

Trong phân tích và báo cáo dữ liệu, hàm Coalesce thường được sử dụng để xử lý các giá trị NULL và cung cấp thông tin chuyên sâu có ý nghĩa. Bằng cách thay thế các giá trị NULL bằng các giá trị mặc định hoặc các giá trị thay thế có ý nghĩa, chúng tôi có thể đảm bảo rằng phân tích và báo cáo của mình là chính xác và giàu thông tin.

Chức năng kết hợp trong quy trình ETL

Trong các quy trình ETL (Trích xuất, Chuyển đổi, Tải), hàm Coalesce thường được sử dụng để chuyển đổi và làm sạch dữ liệu. Bằng cách xử lý các giá trị NULL một cách hiệu quả, chúng tôi có thể đảm bảo tính toàn vẹn và chất lượng của dữ liệu được tải vào hệ thống đích.

Chức năng hợp nhất trong di chuyển dữ liệu

Trong quá trình di chuyển dữ liệu, hàm Coalesce có thể xử lý các giá trị NULL và đảm bảo quá trình chuyển đổi suôn sẻ từ hệ thống nguồn sang hệ thống đích. Chúng tôi có thể duy trì tính nhất quán của dữ liệu và giảm thiểu sự gián đoạn bằng cách cung cấp các giá trị mặc định hoặc thay thế các giá trị NULL bằng các giá trị thay thế có ý nghĩa.

So sánh hàm hợp nhất với các hàm SQL khác

Mặc dù hàm Coalesce là một công cụ mạnh mẽ nhưng điều quan trọng là phải hiểu các tính năng và khả năng độc đáo của nó so với các hàm SQL khác. Hãy so sánh hàm Coalesce với các hàm SQL thường được sử dụng khác.

Hợp nhất so với ISNULL

Hàm ISNULL là một hàm khác xử lý các giá trị NULL trong truy vấn SQL. Mặc dù các hàm Coalesce và ISNULL phục vụ các mục đích tương tự nhưng vẫn có một số khác biệt. Hàm Coalesce có thể xử lý nhiều đối số và trả về giá trị không NULL đầu tiên trong danh sách. Ngược lại, hàm ISNULL chỉ nhận hai đối số và trả về đối số thứ hai nếu đối số thứ nhất là NULL.

Hãy xem xét một bảng có tên Nhân viên với các cột MemberID, FirstName và LastName. Giả sử rằng một số hàng có giá trị NULL trong cột Họ.

Ví dụ hợp nhất

SELECT EmployeeID, FirstName, COALESCE(LastName, 'N/A') AS LastName
FROM Employee;

Đầu ra

ISNULL Ví dụ

SELECT EmployeeID, FirstName, ISNULL(LastName, 'N/A') AS LastName
FROM Employee;

Đầu ra

Tương tự, hàm ISNULL đạt được kết quả tương tự, thay thế các giá trị NULL trong cột Họ bằng 'N/A'. Tuy nhiên, hãy lưu ý rằng hàm ISNULL chỉ nhận hai đối số, trong khi COALESCE có thể xử lý nhiều đối số.

Hợp nhất so với NVL

Hàm NVL tương đương với hàm Coalesce trong Oracle. Cả hai hàm đều phục vụ cùng một mục đích là xử lý các giá trị NULL. Tuy nhiên, cú pháp và cách sử dụng có thể hơi khác nhau giữa hai cơ sở dữ liệu.

Hợp nhất so với IFNULL

Hàm IFNULL là một hàm khác được sử dụng để xử lý các giá trị NULL trong truy vấn SQL. Mặc dù các hàm Coalesce và IFNULL phục vụ mục đích tương tự nhưng vẫn có một số khác biệt. Hàm Coalesce có thể xử lý nhiều đối số và trả về giá trị không NULL đầu tiên trong danh sách. Ngược lại, hàm IFNULL chỉ nhận hai đối số và trả về đối số thứ hai nếu đối số thứ nhất là NULL.

Kết luận

Hàm Coalesce là một công cụ mạnh mẽ trong SQL cho phép chúng ta xử lý các giá trị NULL một cách hiệu quả và cung cấp các kết quả có ý nghĩa. Bằng cách hiểu cú pháp, cách sử dụng, lợi ích và lợi thế của nó, chúng ta có thể tận dụng hàm Coalesce để nâng cao các truy vấn SQL và cải thiện hiệu suất tổng thể của hệ thống cơ sở dữ liệu của mình. Cho dù đó là xử lý các giá trị NULL, nối các cột hay tối ưu hóa các câu lệnh có điều kiện, hàm Coalesce đều có giá trị trong nhiều ứng dụng trong thế giới thực. Vì vậy, lần tới khi bạn gặp các giá trị NULL trong truy vấn SQL, hãy nhớ hàm Coalesce và khả năng chuyển đổi dữ liệu của bạn thành những thông tin chi tiết có ý nghĩa.

Mở khóa toàn bộ tiềm năng của bạn với Chương trình BlackBelt Plus AI & ML được chứng nhận—một trải nghiệm học tập mang tính thay đổi được thiết kế dành cho những cá nhân như bạn, những người đang khao khát làm chủ lĩnh vực trí tuệ nhân tạo và học máy. Được điều chỉnh để phù hợp với các mục tiêu nghề nghiệp riêng của bạn, chương trình này cung cấp sự cố vấn 1:1 được cá nhân hóa từ các chuyên gia trong ngành, đảm bảo hành trình hướng tới chuyên môn được hướng dẫn. Hưởng lợi từ việc chuẩn bị phỏng vấn tập trung và hỗ trợ giới thiệu việc làm, mở đường cho thành công của bạn trong bối cảnh cạnh tranh.

Dấu thời gian:

Thêm từ Phân tích Vidhya