SQL Server: IF-ELSE
Cú pháp
IF(Điều_kiện)
BEGIN
Khối_lệnh_1;
END
ELSE
BEGIN
Khối_lệnh_2;
END;
, trong đó, Điều_kiện có thể là một điều kiện thông thường (chứa các phép toán số học, so sánh, logic), điều kiện có chứa truy vấn con SELECT, hoặc điều kiện là hàm EXISTS().
Ví dụ
Ví dụ với điều kiện thông thường
if(3 > 2) begin print N'Đúng'; end else begin print 'Sai'; end;
Ví dụ với điều kiện chứa truy vấn con SELECT
Giả sử ta muốn kiểm tra xem sinh viên có mã studentId = 123 có đạt học lực giỏi (điểm trung bình >= 8) hay không, thì ta có thể làm như sau:
if((select AVG(mark) from Marks where studentId = 123) >= 8) begin print N'Đạt loại giỏi'; end else begin print N'Không đạt loại giỏi'; end;
Giải thích:
- Ở đây bảng Marks là bảng chứa các điểm số của từng sinh viên ứng với từng môn học.
- Câu lệnh select AVG(mark) from Marks where studentId = 123 sẽ trả về một con số chính là điểm trung bình của sinh viên có mã 123, sau đó đem số này so sanh với 8.
Ví dụ với điều kiện là hàm EXISTS()
Giả sử ta muốn kiểm tra xem sinh viên có mã studentId = 123 đã thi môn học có mã subjectId = 456 hay chưa, thi ta có thể làm như sau:
IF(EXISTS(select * from Marks where studentId = 123 and subjectId = 456)) begin print N'Đã thi'; end ELSE begin print N'Chưa thi'; end;
Giải thích:
Câu lệnh select * from Marks where studentId = 123 and subjectId = 456 là đối số của hàm EXISTS(), câu lệnh này sẽ trả về các bản ghi hoặc không trả về bản ghi nào:
- Nếu trả về bản ghi thì hàm EXISTS() sẽ trả về TRUE, ngược lại sẽ trả về FALSE.