
WHILE (T-SQL)

Thiết lập 1 điều kiện cho sự lặp lại của việc thi hành 1 câu lệnh SQL hay một khối lệnh. Các câu
lệnh được chạy trong vòng lặp nhiều lần, miễn là điều kiện đã cho luôn thỏa. Việc thực hiện các
câu lệnh trong vòng lặp WHILE, có thể được điều khiển từ bên trong vòng lặp với từ khóa
BREAK và CONTINUE.
Cú pháp :
WHILE Biểu_thức_Boolean
{ câu_lệnh_SQL | khổi_lệnh | BREAK | CONTINUE }
Các tham số :
- Biểu_thức_Boolean : là biểu thức trả về giá trị TRUE hay FALSE. Nếu biểu thức có chứa
một lệnh SELECT thì câu lệnh SELECT phải được đóng ngoặc.
Ví dụ :
WHILE (SELECT COUNT(Manv) FROM NhanVien) < 50
…
- câu_lệnh_SQL | khối_lệnh : Là bất kỳ câu lệnh T-SQL đơn nào, hay các câu lệnh được
nhóm lại thành một khối lệnh. Để định nghĩa 1 khối lệnh, ta sử dụng các từ khóa điều
khiển BEGIN và END.
Ví dụ :
WHILE …
BEGIN
UPDATE NhanVien
SET Luong = Luong * 1.05
SELECT Manv,Luong FROM NhanVien
END
- Từ khóa BREAK : thoát khỏi vòng lặp WHILE trong cùng nhất. Các câu lệnh nằm sau từ
khóa END kết thúc của vòng lặp sẽ thực thi bình thường.

- Từ khóa CONTINUE : Làm cho vòng lặp WHILE bắt đầu một vòng lặp mới, vòng lặp cũ
bị kết thúc nên các câu lệnh sau từ khóa CONTINUE sẽ bị bỏ qua.
Sử dụng vòng lặp WHILE với BREAK và CONTINUE :
Nếu tổng giá của các sản phẩm nhỏ hơn 1000, ta tăng giá mỗi sản phẩm thêm 5%. Nếu
sau khi tăng giá, tổng giá ít hơn hay bằng 1250 thì ta lặp lại việc tăng giá. Việc tăng giá
kết thúc khi ta có tổng giá cao hơn 1250.
WHILE (SELECT SUM(GiaSanPham) FROM SanPham) < 1000
BEGIN
UPDATE SanPham
SET GiaSanPham = GiaSanPham * 1.05
IF (SELECT SUM(GiaSanPham) FROM SanPham) > 1250
BREAK
ELSE
CONTINUE
END
CASE (T-SQL)
Đánh giá theo một danh sách các điều kiện và trả về một trong nhiều biểu thức kết quả đã
cho.
CASE có thể được sử dụng ở bất kì câu lệnh hay mệnh đề chứa biểu thức nào. Cụ thể, ta
có thể sử dụng CASE trong các câu lệnh SELECT, UPDATE, DELETE và SET. Còn các
mệnh đề hỗ trợ CASE như IN, WHERE, ORDER BY và HAVING.
Biểu thức CASE có 2 dạng : dạng cơ bản và dạng tìm kiếm.
+ Dạng cơ bản : so sánh 1 biểu thức với một tập các biểu thức đơn giản để chọn ra kết
quả.
+ Dạng tìm kiếm : đánh giá một tập các biểu thức Boolean để chọn ra kết quả.
Cú pháp :
+ Dạng cơ bản :
CASE biểu_thức_so_sánh
WHEN biểu_thức_điều_kiện_1 THEN biểu_thức_kết_quả_1
WHEN biểu_thức_điều_kiện_2 THEN biểu_thức_kết_quả_2
WHEN biểu_thức_điều_kiện_3 THEN biểu_thức_kết_quả_3 [ ...n ]
[ ELSE biểu_thức_kết_quả_else ]
END
+ Dạng tìm kiếm
CASE
WHEN biểu_thức_Boolean_điều_kiện_1 THEN biểu_thức_kết_quả_1
WHEN biểu_thức_Boolean _điều_kiện_2 THEN biểu_thức_kết_quả_2
WHEN biểu_thức_Boolean _điều_kiện_3 THEN biểu_thức_kết_quả_3 [ ...n ]

