Lệnh IF...ELSE trong SQL Server

If trong SQL là gì? Bạn đã biết dùng If Else SQL chưa? Bài viết sẽ cho bạn câu trả lời.

Trong SQL, logic có điều kiện đóng vai trò quan trọng trong việc sửa đổi động các đầu ra truy vấn dựa trên điều kiện cụ thể. Cấu trúc IF...ELSE được sử dụng rộng rãi để triển khai logic như vậy. Bằng cách sử dụng IF...ELSE trong các câu lệnh SQL, chúng ta có thể phân loại dữ liệu, áp dụng các phép biến đổi có điều kiện và triển khai logic nghiệp vụ trực tiếp trong từng truy vấn.

Ở bài viết này, hãy cùng nhau cách sử dụng IF...ELSE trong SQL với các giải thích cú pháp chi tiết, ví dụ thực tế và đầu ra.

Điều kiện là khái niệm phổ biến và cũng rất thường xuyên xảy ra trong cuộc sống hàng ngày. Chính vì thế, nó cần thiết trong lập trình. Đây là khái niệm thể hiện mối quan hệ nhân quả, nguyên nhân và kết quả.

Lệnh IF… Else, nếu thì trong SQL sẽ cho bạn thấy rõ điều này. Về cơ bản, bạn có 3 kiểu điều kiện dạng nếu thì trong SQL.

Tại sao cần lệnh điều kiện?

Lệnh điều kiện trong SQL Server giúp bạn xác định các logic và hành động khác nhau cho các điều kiện khác nhau. Nó cho phép bạn triển khai hành động dựa trên điều kiện đã định trong lệnh. Thực tế, bạn thực hiện nhiều hành động dựa trên kết quả của một số hoạt động hoặc tình huống khác.

Một số ví dụ thực tế của lệnh điều kiện trong SQL Server là:

  • Nếu ngày mai trời mưa, tôi sẽ lên kế hoạch đi đường bộ.
  • Nếu vé máy bay thấp hơn 400 USD, tôi sẽ đi du lịch ở Châu Âu và tham quan một thắng cảnh gần đó.

Hành động ở đây là chuyến đi đường bộ là điều kiện phụ thuộc vào kết quả của hoạt động khác (trời mưa).

Lệnh if là một phần của hàm luồng điều khiển trong SQL Server. Thông thường, nó là lệnh đưa ra quyết định trong các ngôn ngữ lập trình khác mà trả về một giá trị dựa trên điều kiện được cung cấp. Lệnh này chạy code nằm trong khối IF khi điều kiện đưa ra đánh giá là true và khi điều kiện đánh giá false, lệnh ELSE sẽ được thực thi.

Lệnh IF

Sau đây là cú pháp minh họa cách dùng lệnh IF trong SQL Server:

IF boolean_expression
BEGIN
{ statement_block }
END

Ở cú pháp trên, statement_block trong khối BEGIN…END được thực thi khi boolean_expression đáp ứng điều kiện. Nếu không, khối này sẽ bị bỏ qua và điều khiển chương trình được chuyển sang lệnh này sau từ khóa END. Khi đó, bạn sẽ biết nếu biểu thức chứa lệnh SELECT, bạn cần bao gồm chúng trong dấu ngoặc.

IF...ELSE trong SQL là gì?

Trong SQL Server, câu lệnh IF...ELSE dùng để thực thi các lệnh có điều kiện, nếu lệnh đúng thì thực thi lệnh đó, nếu sai sẽ thực thi một lệnh khác.

Cú pháp sử dụng IF...ELSE

Để sử dụng câu lệnh rẽ nhánh IF...ELSE trong SQL Server, ta sử dụng cú pháp như dưới đây:

IF dieukien
{...câu lệnh thực thi khi điều kiện là TRUE...}

[ ELSE
{...câu lệnh thực thi khi điều kiện là FALSE...} ]

Ghi chú:

  • Không bắt buộc sử dụng ELSE. Bạn sẽ sử dụng điều kiện ELSE khi bạn muốn thực hiện một tập hợp các câu lệnh mà điều kiện IF được đánh giá là FALSE (ví dụ: điều kiện không được đáp ứng).
  • Không có điều kiện ELSE IF nằm trong câu lệnh IF...ELSE. Thay vào đó bạn phải sử dụng nhiều câu lệnh IF.. ELSE lồng nhau để đạt được hiệu quả mong muốn.

Biểu đồ Cấu trúc rẽ nhánh IF...ELSE

Ví dụ - Câu lệnh đầy đủ điều kiện IF...ELSE

DECLARE @nhanvien_salary INT;
SET @nhanvien_salary = 15000000;

IF @nhanvien_salary > 10000000
 PRINT 'Truong phong';
ELSE
 PRINT 'Chuyen vien';

GO

Ở câu lệnh IF...ELSE này, nếu lương nhân viên >12000000 thì kết quả được đưa ra là Trưởng phòng, nếu nhỏ hơn thì là Chuyên viên.

Ví dụ - Câu lệnh không có điều kiện ELSE

Vì ELSE là không bắt buộc nên câu lệnh có thể khuyết thiếu điều kiện này.

DECLARE @nhanvien_salary INT;
SET @nhanvien_salary = 15000000;

IF @nhanvien_salary < 10000000
 PRINT 'Chuyen vien';

GO

Ở câu lệnh này, chương trình sẽ đưa ra kết quả là Chuyen vien nếu như biến @nhanvien_salary < 10000000. Không dùng ELSE khi bạn chắc chắn rằng lệnh này luôn đưa ra kết quả TRUE.

Ví dụ - Các câu lệnh IF...ELSE lồng nhau

Vì chúng ta không thể viết điều kiện ELSE IF trong SQL Server như những ngôn ngữ khác nên cần dùng nhiều câu lệnh IF...ELSE lồng nhau để đạt được hiệu quả mong muốn.

DECLARE @nhanvien_salary INT;
SET @nhanvien_salary = 15000000;

IF @nhanvien_salary > 12000000
 PRINT 'Giam doc';
ELSE

BEGIN

IF @nhanvien_salary > 10000000
 PRINT 'Truong phong';
ELSE
 PRINT 'Chuyen vien';

END;

GO

Ví dụ đưa ra được hiểu là, nếu lương lớn hơn 12 triệu kết quả đưa ra sẽ là Giám đốc, nếu không đat điều kiện này ta xét tiếp xuống điều kiện 2, nếu lương lớn hơn 10 triệu kết quả sẽ là Trưởng phòng, các trường hợp khác là Chuyên viên.

Trên đây là những điều bạn cần biết về cách dùng lệnh SQL Server IF Else. Về cơ bản, bạn cần ghi nhớ những điều sau:

  • Biến là các đối tượng hoạt động như placeholder.
  • Từ khóa BEGIN sẽ được dùng để bắt đầu khối lệnh và từ khóa END phải dùng để đóng nó.
  • Cách dùng ELSE trong lệnh IF… ELSE là tùy chọn.
  • Bạn cũng có thể lồng lệnh IF…ELSE vào bên trong lệnh IF…ELSE. Tuy nhiên, lồng lệnh IF trong một lệnh khác là ý tưởng tồi vì nó chỉ khiến code khó đọc và duy trì.

Bài trước: PROCEDURE (Thủ tục) trong SQL Server

Bài tiếp : Vòng lặp WHILE trong SQL Server

Thứ Bảy, 07/06/2025 10:56
421 👨 88.608
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
    ❖ SQL Server