Vòng lặp WHILE trong SQL Server

WHILE trong SQL Server là gì? Cách dùng vòng lặp WHILE trong SQL Server như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!

Bài viết này sẽ hướng dẫn bạn chi tiết cách dùng vòng lặp WHILE SQL Server. Về cơ bản, vòng lặp WHILE là một lệnh luồng điều khiển được dùng để thực hiện lặp lại các câu lệnh cho tới khi thỏa mãn điều kiện cụ thể. Vòng lặp này bắt đầu bằng điều kiện được cung cấp, đánh giá nó và nếu kết quả là TRUE, lệnh này sẽ đi vào bên trong vòng lặp để thực hiện tiếp nhiệm vụ. Nếu điều kiện FALSE, nó sẽ không chạy. Điều đó có nghĩa vòng lặp WHILE trong SQL Server có thể không chạy hoặc chạy nhiều lần.

Cú pháp

Để sử dụng vòng lặp WHILE trong SQL Server, ta sử dụng cú pháp như dưới đây:

WHILE dieukien / * các lệnh cần lặp * /
BEGIN
{......câu lệnh thực thi khi điều kiện là TRUE......}
END;

Ghi chú:

  • Sử dụng câu lệnh vòng lặp WHILE khi bạn không chắc chắn về số lần bạn muốn thực thi.
  • Vì điều kiện WHILE được đánh giá trước khi vào vòng lặp nên vòng lặp có thể không thực hiện được lần nào (khi dieukien là FALSE thì vòng lặp sẽ kết thúc ngay lập tức).
  • Xem thêm câu lệnh BREAK để thoát khỏi vòng lặp WHILE sớm.
  • Xem thêm câu lệnh CONTINUE để khởi động lại vòng lặp WHILE từ đầu.

Biểu đồ vòng lặp WHILE

Như bạn có thể thấy ở biểu đồ này, điều kiện cụ thể đã được kiểm tra cho mỗi lần lặp và dựa trên kết quả đánh giá, luồng code được xác định. Nếu kết quả được đánh giá là TRUE, luồng điều khiển sẽ đi vào bên trong vòng lặp để thực hiện tiếp. Nếu kết quả được đánh giá là FALSE, luồng điều khiển sẽ thoát khỏi vòng lặp và mọi câu lệnh hoặc truy vấn bên ngoài vòng lặp sẽ được thực thi.

Ví dụ

DECLARE @Number INT = 1 ;
DECLARE @Total INT = 0 ;

WHILE @Number < = 10
BEGIN
SET @Total = @Total + @Number;
SET @Number = @Number + 1 ;
END

PRINT @Total;

GO

Trong ví dụ này, vòng lặp sẽ không thực hiện lần nào nếu ngay từ đầu @Number > 10, nó chỉ thực hiện và duy trì khi biến < = 10. Đến khi vượt quá điều kiện (> 10), vòng lặp sẽ kết thúc và tiếp tục thực thi các câu lệnh tiếp theo.

Bài trước: Lệnh IF...ELSE trong SQL Server

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

Thứ Sáu, 14/07/2023 17:00
54 👨 28.683
1 Bình luận
Sắp xếp theo
  • Me Not
    Me Not

    Viết một vòng lặp WHILE để nhập 10 mẫu tin tùy ý vào bảng KHACHANG (MSKH, TENKH, PHAI, DIACHI, DIENTHOAI), với bảng dữ liệu tăng tự động như sau:

    KH001 KhachHang1 Nam xxxx yyyyy

    .....

    KH0010 KhachHang10 Nam xxxx yyyyy


    cho em hỏi câu này làm như nào ạ?

    Thích Phản hồi 12/03/21
    ❖ SQL Server