Chức năng:
Câu lệnh WHILE là một cấu trúc lặp sẽ thực hiện các thao tác lặp cho đến khi biểu thức điều kiện trong câu lệnh WHILE có giá trị Fasle. Biểu thức điều kiện lặp lại có thể là một câu lệnh SELECT.
Cú pháp:
WHILE <BOOLEAN_EXPRESSION>
BEGIN
SQL_STATEMENT | STATEMENT_BLOCK
[BREAK]
SQL_STATEMENT | STATEMENT_BLOCK
[CONTINUE]
END
Trong đó:
+ BREAK: Được sử dụng để kết thúc vòng lặp khi gặp một trường hợp cụ thể nào đó.
+ CONTINUE: Được sử dụng để bỏ qua phần còn lại của mã nguồn trong vòng lặp và áp dụng cho lần lặp hiện tại. Nói cách khác, vòng lặp sẽ không kết thúc, nó sẽ tiếp tục đến lần lặp tiếp theo.
Lưu ý: Thông thường hai từ khóa BREAK và CONTINUE phải nằm trong cấu trúc IF ... ELSE ...
Ví dụ minh họa
Để thuận tiện cho các bạn học tập, mình có tạo sẵn file .sql trong này đã mình tạo cấu trúc bảng và data sẵn để các bạn dễ dàng thực hiện truy vấn, các bạn có thể tải tại đây.
Ví dụ 1: Nếu mức lương trung bình của nhân viên vẫn dưới 200.000, cập nhật lương của nhân viên sẽ tăng 10% so với mức lương cũ.
Hướng dẫn giải:
USE QLDEAN
GO
WHILE (SELECT AVG(LUONG) FROM NHANVIEN) < 200000
BEGIN
UPDATE NHANVIEN
SET LUONG = LUONG * 1.1
END
SELECT MAX(LUONG)
FROM NHANVIEN
Kết quả: