Khoá học: Thiết lập dự án Wordpress

Nếu bạn đang tìm kiếm một cách nhanh chóng và hiệu quả để thiết lập một trang web cá nhân hoặc doanh nghiệp của mình, hãy bắt đầu với WordPress. Được coi là nền tảng quản lý nội dung (CMS) phổ biến nhất trên thế giới, WordPress cho phép bạn dễ dàng tạo ra một [...]

MySQL Bài 29: Tìm hiểu lệnh CASE trong MySQL

1) Chức năng & cách sử dụng

– Trong hệ quản trị cơ sở dữ liệu MySQL, lệnh CASE được dùng để tạo ra những giá trị khác nhau dựa trên những điều kiện khác nhau.

– Dưới đây là cú pháp sử dụng lệnh CASE:

CASE
WHEN condition1 THEN result1;
WHEN condition2 THEN result2;
WHEN conditionN THEN resultN;
ELSE result;
END

– Khi lệnh CASE được thực thi, nó sẽ kiểm tra lần lượt các điều kiện (theo thứ tự từ trên xuống), nếu phát hiện được điều kiện đúng thì nó sẽ kết thúc việc kiểm tra & trả về giá trị nằm tại điều kiện đó.

Lưu ý:

  • Nếu không có điều kiện nào đúng thì lệnh CASE sẽ trả về giá trị tại mệnh đề ELSE.
  • Nếu không có điều kiện nào đúng & không có mệnh đề ELSE thì lệnh CASE sẽ trả về giá trị NULL.

2) Tham khảo một số ví dụ

– Trong bài học này, tôi sẽ sử dụng cái bảng Student như bên dưới để làm một số ví dụ minh họa.

IDFullNameGenderAgeCity
1Nguyễn Thành NhânNam22Cần Thơ
2Dương Văn GánhNam19Sóc Trăng
3Trần Thanh TrúcNữ27Hải Phòng
4Châu Tinh TrìNam20Cần Thơ
5Lê Thị Huỳnh NhưNữ24Bạc Liêu
6Tì Sa Môn ThiênNam21Hậu Giang
7Doãn Chí BìnhNam26Cần Thơ
8Phạm Thị Thu HiềnNữ18Vĩnh Long
Ví dụ:

– Liệt kê tên, tuổi, nhóm độ tuổi của tất cả các sinh viên.

  • Nếu sinh viên có tuổi lớn hơn 20 thì nhóm độ tuổi sẽ ghi là “Lớn hơn 20 tuổi”
  • Nếu sinh viên có tuổi bằng 20 thì nhóm độ tuổi sẽ ghi là “Bằng 20 tuổi”
  • Nếu sinh viên có tuổi nằm ngoài hai trường hợp trên thì nhóm độ tuổi sẽ ghi là “Nhỏ hơn 20 tuổi”
SELECT FullName, Age,
CASE
	WHEN Age > 20 THEN "Lớn hơn 20 tuổi"
	WHEN Age = 20 THEN "Bằng 20 tuổi"
	ELSE "Nhỏ hơn 20 tuổi"
END AS AgeGroup
FROM Student;

– Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới:

FullNameAgeAgeGroup
Nguyễn Thành Nhân22Lớn hơn 20 tuổi
Dương Văn Gánh19Nhỏ hơn 20 tuổi
Trần Thanh Trúc27Lớn hơn 20 tuổi
Châu Tinh Trì20Bằng 20 tuổi
Lê Thị Huỳnh Như24Lớn hơn 20 tuổi
Tì Sa Môn Thiên21Lớn hơn 20 tuổi
Doãn Chí Bình26Lớn hơn 20 tuổi
Phạm Thị Thu Hiền18Nhỏ hơn 20 tuổi
Ví dụ:

– Liệt kê thông tin của tất cả các sinh viên.

Lưu ý: Nếu biểu thức (4 + 10) > 15 là đúng thì sắp xếp thứ tự các sinh viên theo độ tuổi, còn nếu sai thì sắp xếp thứ tự các sinh viên theo giới tính.

SELECT *
FROM Student
ORDER BY
(CASE
	WHEN (4+10) > 15 THEN Age
	ELSE Gender
END);

– Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới:

IDFullNameGenderAgeCity
1Nguyễn Thành NhânNam22Cần Thơ
2Dương Văn GánhNam19Sóc Trăng
4Châu Tinh TrìNam20Cần Thơ
6Tì Sa Môn ThiênNam21Hậu Giang
7Doãn Chí BìnhNam26Cần Thơ
3Trần Thanh TrúcNữ27Hải Phòng
5Lê Thị Huỳnh NhưNữ24Bạc Liêu
8Phạm Thị Thu HiềnNữ18Vĩnh Long

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *