Posted by : Unknown
22/4/13
Biểu thức CASE trong Transaction-SQL vô cùng hữu ích. Hoạt động của biểu thức CASE rất đơn giản chỉ là thực hiện việc so sánh một biểu thức bất kỳ với hàng loạt các giá trị chỉ định trước đó, nếu bạn là người lập trình trong môi trường Visual Basic thì biểu thức CASE của Transaction-SQL gần giống như cấu trúc điều khiển Select Case.
|
Tuy nhiên biểut hức CASE hoàn toàn không phải là một cấu trúc điều khiển, điều này có nghĩa là nó chỉ được sử dụng lồng vào các câu lệnh khác mà không thể thực hiện đơn lẻ như các cấu trúc điều khiển khác. Biểu thức CASE có thể sử dụng ở hai dạng khác nhau.
Cú pháp CASE dạng đơn giản :
Trong đó :
• Biểu thức : biểu thức tính toán hoặc tên cột dữ liệu của bảng được dùng để so sánh.
• Giá trị 1, giá trị 2 : là các giá trị cụ thể để so sánh bằng (=) với biểu thức.
• Biểu thức kết quả 1, biểu thức kết quả 2 : là các biểu thức sẽ được trả về khi việc so sánh của biểu thức bằng với các giá trị so sánh tương ứng.
• Biểu thức kết quả N : là biểu thức sẽ được trả về khi tất cả các trường hợp so sánh đều không bằng với các giá trị đưa ra.
Ví dụ :
Để hiển thị danh sách các vật tư có trong bảng VATTU theo từng loại hàng, có đếm tổng số các vật tư theo từng loại hàng. Bạn sử dụng lệnh SELECT FROM có kết hợp biểu thức CASE đơn giản như sau :
Kết quả truy vấn trả về :
Cú pháp CASE dạng tìm kiếm :
Trong đó :
• Biểu thức logic1, biểu thức logic2 : là các biểu thức luận lý dùng để thực hiện các phép so sánh trong biểu thức CASE.
• Biểu thức kết quả 1, biểu thức kết quả 2 : là các biểu thức sẽ được trả về khi một trong các biểu thức luận lý so sánh có kết quả là đúng.
• Biểu thức kết quả N : là biểu thức sẽ được trả về khi tất cả các biểu thức logic so sánh đưa ra đều sai.
Ví dụ :
Để hiển thị danh sách các vật tư có trong bảng VATTU, thông tin bổ sung thêm chuỗi ghi chú, tùy thuộc vào giá trị của cột tỷ lệ phần trăm giá bán. Bạn sử dụng lệnh SELECT FROM có kết hợp biểu thức CASE tìm kiếm như sau :
Kết quả truy vấn trả về :
Thực tế thì nhưng người lập trình trong môi tường Transaction-SQL thường sử dụng biểu thức CASE tìm kiếm bởi vì khi đó các biểu thức luận lý mà bạn dùng để so sánh được phép chứa nhiều toán tử so sánh khác nhau, trong khi đó biểu thức CASE đơn giản ở phần trên chỉ cho phép bạn thực hiện phép so sánh bằng (=) trên một biểu thức đơn giản.
Ví dụ :
Để giảm giá bán hàng trong tháng 02/2002 theo quy tắc :
• Nếu số lượng hàng <= 2 thì không giảm giá.
• Nếu số lượng hàng từ 3 đến 10 thì giảm 10%.
• Nếu số lượng hàng > 10 thì giảm 20%.
Bạn sử dụng lệnh UPDATE SET có kết hợp biểu thức CASE tìm kiếm như sau :
Tóm lại biểu thức CASE có thể được phép kết hợp sử dụng trong các câu lệnh SELECT, UPDATE SET, DELETE dùng để biện luận các trường hợp khác nhau của các giá trị dữ liệu bên trong một câu lệnh truy vấn.
|
Bài viết liên quan :
- Trang chủ »
- Ebook - Lập trình »
- SQL Server 2000 : Các câu lệnh truy vấn dữ liệu – Biểu thức CASE
{ 0 nhận xét }