Máy chủ SQL IF…Câu lệnh điều kiện ELSE: Ví dụ về truy vấn chọn T-SQL

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

Các câu lệnh có điều kiện trong máy chủ SQL 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 thực hiện các hành động khác nhau dựa trên các điều kiện được xác định trong câu lệnh. Trong cuộc sống thực, bạn thực hiện nhiều hành động tùy thuộc vào 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ời gian thực về câu lệnh tình huống SQL là:

  • Nếu ngày mai trời mưa, tôi sẽ lên kế hoạch đi du lịch.
  • Nếu vé máy bay từ thành phố của tôi dưới 400 USD thì tôi sẽ đi nghỉ ở Châu Âu, nếu không tôi sẽ thích một số địa điểm du lịch gần đó hơn.

Ở đây, bạn có thể thấy một hành động, như Road trip ở trên, là phụ thuộc có điều kiện về kết quả của một hoạt động khác là “ngày mai trời có mưa hay không!”

Tương tự, MS SQL cũng cung cấp khả năng thực thi câu lệnh T-SQL có điều kiện.

Câu lệnh IF… Other trong SQL Server

In MSSQL, NẾU KHÁC là một loại Câu điều kiện.

Bất kỳ câu lệnh T-SQL nào cũng có thể được thực thi có điều kiện bằng cách sử dụng NẾU KHÁC.

Hình dưới đây giải thích IF ELSE trong máy chủ SQL:

Cách thức hoạt động của If và Else
Làm thế nào nếu và khác hoạt động
  • Nếu điều kiện đánh giá là Thật, sau đó là các câu lệnh T-SQL theo sau là IF điều kiện trong máy chủ SQL sẽ được thực thi.
  • Nếu điều kiện đánh giá là Sai, sau đó là các câu lệnh T-SQL theo sau là ELSE từ khóa sẽ được thực thi.
  • Sau khi các câu lệnh IF T-SQL hoặc câu lệnh ELSE T-SQL được thực thi thì các câu lệnh T-SQL vô điều kiện khác sẽ tiếp tục thực thi.

IF… Khác Cú pháp và quy tắc trong SQL

Cú pháp:

IF <Condition>
     {Statement | Block_of_statement}   
[ ELSE   
     {Statement | Block_of_statement}]

Quy tắc:

  • Điều kiện nên là Biểu thức Boolean, Tức là, điều kiện dẫn đến giá trị Boolean khi được đánh giá.
  • Câu lệnh IF ELSE trong SQL có thể xử lý có điều kiện một câu lệnh T-SQL hoặc một khối câu lệnh T-SQL.
  • Khối câu lệnh nên bắt đầu bằng từ khóa BEGIN và đóng bằng từ khóa END.
  • Việc sử dụng BEGIN và END giúp máy chủ SQL xác định khối câu lệnh cần được thực thi và tách nó khỏi phần còn lại của các câu lệnh T-SQL không thuộc khối IF…ELSE T-SQL.
  • ELSE là tùy chọn.

IF…ELSE với giá trị số duy nhất trong Biểu thức Boolean.

Điều kiện: ĐÚNG

IF (1=1)
PRINT 'IF STATEMENT: CONDITION IS TRUE'
ELSE
PRINT 'ELSE STATEMENT: CONDITION IS FALSE'

NẾU…ELSE với giá trị số duy nhất trong Biểu thức Boolean

Điều kiện: SAI

IF (1=2)
PRINT 'IF STATEMENT: CONDITION IS TRUE'
ELSE
PRINT 'ELSE STATEMENT: CONDITION IS FALSE'

NẾU…ELSE với giá trị số duy nhất trong Biểu thức Boolean

Giả thiết: Giả sử rằng bạn có bảng như 'Guru99' với hai cột và bốn hàng như hiển thị bên dưới:

NẾU…ELSE với giá trị số duy nhất trong Biểu thức Boolean

Chúng tôi sẽ sử dụng 'Guru99' bảng trong các ví dụ khác

IF…ELSE với biến trong Biểu thức Boolean.

Điều kiện: ĐÚNG

DECLARE @Course_ID INT = 4

IF (@Course_ID = 4)
Select * from Guru99 where Tutorial_ID = 4
ELSE
Select * from Guru99 where Tutorial_ID != 4

NẾU...ELSE với biến trong Biểu thức Boolean

Điều kiện: SAI

DECLARE @Course_ID INT = 4

IF (@Course_ID != 4)
Select * from Guru99 where Tutorial_ID = 4
ELSE
Select * from Guru99 where Tutorial_ID != 4

NẾU...ELSE với biến trong Biểu thức Boolean

NẾU...ELSE với Bắt đầu Kết thúc

Điều kiện: ĐÚNG

DECLARE @Course_ID INT = 2

IF (@Course_ID <=2)
	BEGIN
	Select * from Guru99 where Tutorial_ID = 1
	Select * from Guru99 where Tutorial_ID = 2
	END
ELSE
	BEGIN
	Select * from Guru99 where Tutorial_ID = 3
	Select * from Guru99 where Tutorial_ID = 4
	END

NẾU...ELSE với Bắt đầu Kết thúc

Điều kiện: SAI

DECLARE @Course_ID INT = 2

IF (@Course_ID >=3)
	BEGIN
	Select * from Guru99 where Tutorial_ID = 1
	Select * from Guru99 where Tutorial_ID = 2
	END
ELSE
	BEGIN
	Select * from Guru99 where Tutorial_ID = 3
	Select * from Guru99 where Tutorial_ID = 4
	END

NẾU...ELSE với Bắt đầu Kết thúc

Câu lệnh IF không có câu lệnh khác

Bạn có thể sử dụng câu lệnh IF trong SQL mà không cần phần ELSE. Hãy nhớ rằng chúng tôi đã tuyên bố rằng phần ELSE là tùy chọn. Ví dụ:

DECLARE @Course_ID INT = 2

IF (@Course_ID <=2)
	Select * from Guru99 where Tutorial_ID = 1

Nó in ra nội dung sau:

Câu lệnh IF không có câu lệnh khác

Thực hiện điều kiện sai sẽ không đưa ra kết quả nào. Hãy xem xét truy vấn sau

DECLARE @Course_ID INT = 2

IF (@Course_ID <=0)
	Select * from Guru99 where Tutorial_ID = 1

Kết quả nó

Câu lệnh IF không có câu lệnh khác

Câu lệnh IF…Khác lồng nhau

Không giống như ngôn ngữ lập trình, bạn không thể thêm câu lệnh ELSE IF trong điều kiện IF ELSE trong SQL. Đây là lý do tại sao bạn có thể lồng IF ELSE trong các câu lệnh truy vấn SQL. Nó được thể hiện dưới đây:

 DECLARE @age INT;
SET @age = 60;

IF @age < 18
   PRINT 'underage';
ELSE
BEGIN
   IF @age < 50
      PRINT 'You are below 50';
   ELSE
      PRINT 'Senior';
END;
  • Trong ví dụ này, mã sẽ in chưa đủ tuổi nếu giá trị của @age dưới 18.
  • Nếu không, phần ELSE sẽ được thực thi. Phần ElSE có IF…ELSE lồng nhau.
  • Nếu giá trị của @age dưới 50, mã này sẽ in ra Bạn dưới 50. Nếu không có điều kiện nào trong số này là đúng thì mã sẽ in ra Người cao tuổi.

Câu lệnh IF…Khác lồng nhau

Tổng kết

  • Biến là đối tượng đóng vai trò giữ chỗ.
  • Khối câu lệnh nên bắt đầu bằng từ khóa BEGIN và đóng bằng từ khóa END.
  • Khác là tùy chọn để sử dụng trong câu lệnh IF… ELSE
  • Bạn cũng có thể lồng điều kiện SQL IF ELSE vào một câu lệnh IF…ELSE khác.