MySQL COALESCE so với IFNULL

Trong bài viết này, tôi sẽ giải thích sự khác biệt giữa các hàm IsNull() và Coalesce() trong SQL Server 2012. Các hàm ISNULL và Coalesce đều được sử dụng để thay thế các giá trị null bằng một giá trị do người dùng xác định. Vì vậy, hãy xem một ví dụ thực tế về sự khác biệt của các chức năng này. Ví dụ được phát triển trong SQL Server 2012 bằng SQL Server Management Studio. Có một số điểm khác biệt được giải thích bên dưới

Hàm ISNULL() trong SQL Server

Hàm ISNULL() được sử dụng để thay thế NULL bằng giá trị thay thế đã chỉ định. Hàm này chỉ chứa hai đối số

ISNULL (check_exp, change_value)

Hàm Coalesce() trong SQL Server

Hàm Coalesce() trả về giá trị khác null đầu tiên trong số các đối số của nó. Hàm này không giới hạn số lượng đối số nhưng phải cùng kiểu dữ liệu

KẾT HỢP ( biểu thức [ ,. N ] )

Hàm COALESCE() tương đương với biểu thức CASE sau. TRƯỜNG HỢP

KHI (exp1 KHÔNG NULL) THÌ exp1

KHI (exp2 KHÔNG NULL) THÌ exp2

1. Hàm COALESCE() dựa trên tiêu chuẩn ANSI SQL trong khi hàm ISNULL là một hàm Transact-SQL

2. Một biểu thức liên quan đến ISNULL với các tham số không null được coi là KHÔNG NULL, trong khi các biểu thức liên quan đến COALESCE với các tham số không null được coi là NULL


3. Hàm ISNULL() chỉ chứa hai tham số. Hàm COALESCE() chứa nhiều tham số. Nếu chúng ta sử dụng nhiều hơn hai tham số với hàm ISNULL thì chúng ta phải sử dụng các hàm ISNULL lồng nhau.  

  1. CHỌN ISNULL(NULL, NULL, 'Xin chào')

ĐẦU RA

MySQL COALESCE so với IFNULL

Ví dụ 5

Trong ví dụ này, chúng ta sẽ hiểu cách hàm COALESCE() hoạt động trên dữ liệu bảng. Đầu tiên, tạo một bảng "nhân viên" bằng cách sử dụng câu lệnh sau

Tiếp theo, thêm dữ liệu vào bảng bằng câu lệnh INSERT, như bên dưới

Thực hiện truy vấn dưới đây để hiển thị dữ liệu bảng

Chúng tôi sẽ nhận được đầu ra dưới đây

MySQL COALESCE so với IFNULL

Bây giờ, hãy thực hiện câu lệnh này sử dụng hàm COALESCE() để chỉ trả về số điện thoại di động nếu nhân viên có tất cả các số liên lạc

Nó sẽ cho đầu ra sau

MySQL COALESCE so với IFNULL

Nếu nhân viên chỉ có một liên hệ văn phòng hoặc điện thoại di động, thì hãy thực hiện câu lệnh này để trả về một số văn phòng. Khi không tìm thấy số văn phòng, hãy quay lại số điện thoại liên hệ

Hợp nhất có tốt hơn Isnull không?

Vì ISNULL là một hàm nên nó chỉ được đánh giá một lần. Như đã mô tả ở trên, các giá trị đầu vào cho biểu thức COALESCE có thể được đánh giá nhiều lần. COALESCE về cơ bản dịch sang biểu thức CASE và ISNULL được tích hợp sẵn trong công cụ cơ sở dữ liệu. " ISNULL nhanh hơn COALESCE . " [cần dẫn nguồn].

Sự khác biệt giữa hàm Isnull () so với hàm kết hợp () là gì?

So sánh COALESCE và ISNULL . ISNULL sử dụng loại dữ liệu của tham số đầu tiên, COALESCE tuân theo quy tắc biểu thức CASE và trả về loại dữ liệu của giá trị có mức độ ưu tiên cao nhất .

Sự khác biệt giữa Ifnull và Isnull là gì?

IFNULL tương đương với ISNULL. IFNULL tương đương với COALESCE ngoại trừ việc IFNULL được gọi chỉ với hai đối số . ISNULL(a,b) khác với x IS NULL. Các đối số có thể có bất kỳ loại dữ liệu nào được Vertica hỗ trợ.

Hợp nhất có hoạt động trong MySQL không?

Hàm COALESCE() trong MySQL được sử dụng để trả về giá trị khác null đầu tiên trong một chuỗi biểu thức đã chỉ định . Nếu hàm này đánh giá tất cả các giá trị của danh sách là null hoặc nó không tìm thấy bất kỳ giá trị nào khác null, thì nó sẽ trả về NULL.