CASE WHEN
Thuộc phần Vượt ra ngoài kiến thức cơ bản trong hành trình SQL của Coddy. Bài học 1 trên 27.
Biểu thức CASE là dạng if/else if/else trong SQL. Biểu thức này nằm trong SELECT (hoặc ORDER BY, hoặc WHERE) và tạo ra một giá trị cho mỗi hàng.
SELECT name,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 75 THEN 'B'
WHEN score >= 60 THEN 'C'
ELSE 'F'
END AS grade
FROM studentsMỗi WHEN được kiểm tra từ trên xuống dưới; điều kiện khớp đầu tiên sẽ được chọn. ELSE là tùy chọn. Nếu không có, các hàng không khớp sẽ nhận NULL.
Luôn kết thúc bằng END và đặt tên cho cột bằng AS.
Thử thách
DễCác bảng và cột hiện có:
employees:id,name,department,salary
Với mỗi nhân viên, trả về name, department và một cột tier được tạo như sau:
'partner'khisalary >= 150000(ở bất kỳ bộ phận nào)'senior'khidepartment = 'eng'vàsalary >= 100000'mid'khisalary >= 60000'entry'trong các trường hợp còn lại
Sắp xếp theo salary giảm dần. Lưu ý thứ tự các nhánh WHEN rất quan trọng: điều kiện khớp đầu tiên sẽ được chọn.
Tự làm thử
SELECT name, department,
-- tier với nhiều nhánh WHEN kết hợp salary và department
FROM employees
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Vượt ra ngoài kiến thức cơ bản
6Công thức phân tích dữ liệu
Top N trong mỗi nhómTỷ lệ trên tổngTổng lũy kếGiữ lại một hàng cho mỗi khóaÔn tập: khách hàng hàng đầuTự luyện tập: Playground SQL