Chúng ta có thể thực hiện một lệnh SQL hoặc một khối lệnh một cách lặp đi lặp lại bằng cách dựa trên điều kiện. Sử dụng từ khoá WHILE chúng ta có thể bảo đảm các câu lệnh được thực hiện lặp đi lặp lại trong khi điều kiện chỉ ra có giá trị đúng. Chúng ta có thể sử dụng từ khoá CONTINUE và BREAK trong vòng lặp WHILE để điều khiển sự thực thi của các câu lệnh.
Bộ môn CNPM – Khoa CNTT - UTEHY Trang 96 WHILE Boolean_expression { statement | statement_block } [ BREAK ] { statement | statement_block } [ CONTINUE ]
Boolean_expression là bíểu thức điều kiện, nó có thể trả về giá trị ĐÚNG hoặc
SAI. Trong trường hợp biểu thức điều kiện chứa câu lệnh SELECT, nó phải được bao trong dấu ngoặc đơn.
Từ khoá BREAK dùng để thoát khỏi vòng lặp WHILE trong cùng ngược lại từ khoá CONTINUTE dùng để điều khiển vòng lặp được thực hiện tiếp tục bỏ qua một loạt các lệnh sau từ khoá CONTINUTE.
Nếu chúng ta có các vòng lặp WHILE lồng nhau, câu lệnh BREAK ở vòng lặp phía trong sẽ chuyển quyền thực hiện ra vòng lặp phía ngoài cùng. Đầu tiên, các câu lệnh tại vòng lặp phía trong được kết thúc, sau đó các câu lệnh của vòng lặp phía ngoài được thực hiện.
Ví dụ 1: Sử dụng từ khoá BREAK và CONTINUE với các lệnh IF …ELSE lồng nhau và WHILE
Trong ví dụ này, nếu giá trung bình của các cuốn sách trong bảng titles nhỏ hơn $30, vòng lặp WHILE sẽ thực hiện cập nhật giá của các cuốn sách đó gấp 2 lần và sau đó lựa chọn giá lơn nhất. Nếu giá lớn nhất vừa tìm được nhỏ hơn hoặc bằng $50, vòng lặp WHILE sẽ lặp lại và gấp đôi giá lần nữa. Vòng lặp này sẽ tiếp tục gấp đôi giá của các cuốn sách tới khi giá lớn nhất lớn hơn $50, thì thoát khỏi vòng lặp và hiển thị một thông báo.
Bộ môn CNPM – Khoa CNTT - UTEHY Trang 97
2. GO
3. WHILE (SELECT AVG(price) FROM titles) < $30 4. BEGIN
5. UPDATE titles SET price = price * 2
6. SELECT MAX(price) FROM titles
7. IF (SELECT MAX(price) FROM titles) > $50 BREAK
8. ELSE CONTINUE 9. END
10. PRINT 'Too much for the market to bear'