MySQL NULLIF

Hiểu về MySQL NULLIF

Nếu bạn đang học về MySQL, một trong những hàm quan trọng mà bạn nên nắm vững là hàm NULLIF. Hàm này rất hữu ích trong việc xử lý dữ liệu và giúp đơn giản hóa các biểu thức điều kiện trong các câu truy vấn SQL.

Định nghĩa NULLIF

NULLIF là một hàm trong MySQL, nó thực hiện việc so sánh hai biểu thức. Nếu hai biểu thức này bằng nhau, hàm sẽ trả về giá trị NULL. Nếu không, hàm sẽ trả về giá trị của biểu thức đầu tiên. Nói cách khác, NULLIF giúp tránh việc trả về các giá trị không mong muốn và có thể được sử dụng để xử lý các tình huống phân tích dữ liệu một cách linh hoạt.

Cú pháp

NULLIF(expr1, expr2)

Trong đó:

  • expr1: Biểu thức đầu tiên cần so sánh.
  • expr2: Biểu thức thứ hai để so sánh với biểu thức đầu tiên.

Ví dụ về NULLIF

Dưới đây là một số ví dụ để minh họa cách sử dụng hàm NULLIF trong MySQL:

Ví dụ 1: So sánh hai giá trị số

SELECT NULLIF(10, 10) AS Result; -- Kết quả sẽ trả về NULL
SELECT NULLIF(10, 5) AS Result; -- Kết quả sẽ trả về 10

Trong ví dụ trên, khi cả hai giá trị là 10, hàm NULLIF sẽ trả về NULL, nhưng nếu giá trị đầu tiên là 10 và giá trị thứ hai là 5, nó sẽ trả về giá trị đầu tiên, tức là 10.

Ví dụ 2: Sử dụng NULLIF trong câu truy vấn với bảng dữ liệu

CREATE TABLE products (
    id INT,
    price DECIMAL(10, 2)
);

INSERT INTO products (id, price) VALUES (1, 100), (2, 150), (3, 200);
SELECT id, NULLIF(price, 150) AS AdjustedPrice FROM products;

Kết quả sẽ là:

  • Id: 1, AdjustedPrice: 100
  • Id: 2, AdjustedPrice: NULL
  • Id: 3, AdjustedPrice: 200

Ví dụ 3: Kết hợp NULLIF với các hàm khác

SELECT id, COALESCE(NULLIF(price, 150), 0) AS FinalPrice FROM products;

Kết quả sẽ là:

  • Id: 1, FinalPrice: 100
  • Id: 2, FinalPrice: 0
  • Id: 3, FinalPrice: 200

Kết luận

Hàm NULLIF là một công cụ mạnh mẽ trong MySQL giúp cải thiện việc xử lý và phân tích dữ liệu. Bằng cách sử dụng NULLIF, bạn có thể dễ dàng kiểm soát các giá trị trả về trong các truy vấn SQL phức tạp. Hãy thử nghiệm và tận dụng hàm này trong các dự án của bạn để có kết quả tốt hơn!