Lệnh IF...ELSE trong SQL Server

Giống như các ngôn ngữ lập trình khác, SQL Server cũng cung cấp cho người dùng câu lệnh rẽ nhánh IF...ELSE. Bài viết sẽ hướng dẫn chi tiết cách sử dụng cùng với cú pháp và ví dụ rõ ràng để bạn dễ dàng hình dung hơn về IF...ELSE.

Mô tả

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.

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

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

Thứ Hai, 12/11/2018 11:12
31 👨86