SQL Server: CASE-WHEN | V1Study
Có thể bạn quan tâm
- Đào tạo Độ tuổi từ 5 - 11 Độ tuổi từ 12 - 17 Từ 18 tuổi
- Lập trình Python Lập trình C C++ Java C# - C Sharp Android Scratch Pascal Robot mBot
- Web ReactJS HTML5 CSS3 JavaScript Node.js JSP ASP.NET Core jQuery PHP
- FW-CMS Laravel AngularJS Flutter Magento Bootstrap VueJS CodeIgnitor WordPress Sass Drupal
- Video Video Python Video Lập trình C Video C# Video Java Video HTML5-CSS3-JavaScript Video SQL Server Video PHP Video jQuery Video Android Video C++ Video Scratch
- Video1 Video XML-JSON Video MySQL Video Excel Video Giải thuật và Lập trình Video Sức khỏe Video Drupal Video mBot Video Giáo dục - Khoa học
- Other Unity Giải thuật và lập trình Giải thuật và lập trình - C CCNA Mạng máy tính Design Patterns English Facebook SEO Git Tin học đại cương Japanese App-Uti Download
- Data SQL Server XML JSON MySQL
- News
Tổng quan
CASE-WHEN dùng để thiết lập điều kiện rẽ nhánh trong SQL. CASE-WHEN có thể áp dụng được cho các câu lệnh DML gồm SELECT và UPDATE.
Dưới đây sẽ hướng dẫn cách sử dụng CASE-WHEN cho câu lệnh SELECT, bạn có thể xem cách sử dụng CASE-WHEN cho câu lệnh UPDATE tại bài viết về UPDATE.
Khi sử dụng cho SELECT thì CASE-WHEN sẽ thể hiện ở một cột riêng và ta có thể đặt bí danh cho cột này.
Cú pháp
Có hai cú pháp sử dụng CASE-WHEN được thể hiện cụ thể như sau:
Cú pháp 1
SELECT Các_cột, Bí_danh = CASE Tên_cột
WHEN Giá_trị1 then Hiển_thị1
WHEN Giá_trị2 then Hiển_thị2
...
ELSE Hiển_thị
END
FROM Các_bảng_liên_kết [WHERE Điều_kiện];
Hoặc:
SELECT Các_cột, CASE Tên_cột
WHEN Giá_trị1 then Hiển_thị1
WHEN Giá_trị2 then Hiển_thị2
...
ELSE Hiển_thị
END AS Bí_danh
FROM Các_bảng_liên_kết [WHERE Điều_kiện];
Ví dụ cho Cú pháp 1
Giả sử bảng Student có các dữ liệu sau đây:
| studentid | studentname | gender |
|---|---|---|
| 1 | A | 1 |
| 2 | B | 0 |
| 3 | C | Null |
| 4 | A | 0 |
Bây giờ ta muốn hiển thị toàn bộ dữ liệu của bảng Student trong đó cột gender sẽ hiển thị 'Male' thay cho 1, 'Female' thay cho 0 và 'Unknow' thay cho Null. Ta làm như sau:
SELECT studentid, studentname, GENDER = CASE gender
WHEN 1 then 'Male'
WHEN 0 then 'Female'
ELSE 'Unknow'
END
FROM Student;
Hoặc:
SELECT studentid, studentname, CASE gender
WHEN 1 then 'Male'
WHEN 0 then 'Female'
ELSE 'Unknow'
END AS GENDER
FROM Student;
Kết quả sẽ hiển thị như sau:
| studentid | studentname | GENDER |
|---|---|---|
| 1 | A | Male |
| 2 | B | Female |
| 3 | C | Unknow |
| 4 | A | Female |
Cú pháp 2
SELECT Các_cột, Bí_danh = CASE
WHEN Điều_kiện1 then Hiển_thị1
WHEN Điều_kiện2 then Hiển_thị2
...
ELSE Hiển_thị
END
FROM Các_bảng_liên_kết [WHERE Điều_kiện];
Hoặc:
SELECT Các_cột, CASE
WHEN Điều_kiện1 then Hiển_thị1
WHEN Điều_kiện2 then Hiển_thị2
...
ELSE Hiển_thị
END AS Bí_danh
FROM Các_bảng_liên_kết [WHERE Điều_kiện];
Ví dụ cho Cú pháp 2
Hiển thị tên khách hàng, tổng số tiền mua hàng của từng khách và hiển thị cột Level với giá trị điền vào cột này theo tiêu chí sau: Nếu tổng số tiền mua hàng của từng khách < 5000 thì điền giá trị là 'Level1', từ 5000 đến < 10000 thì điền giá trị là 'Level2', >=10000 thì điền giá trị là 'V.I.P' (Câu 14 bài tập Practical 4). Ta giải quyết yêu cầu này như sau:
SELECT c.Ten, SUM(b.SoLuongMua * a.DonGia) AS [TongTienMua], [Level] = CASE
WHEN SUM(b.SoLuongMua * a.DonGia) < 5000 THEN 'Level 1'
WHEN SUM(b.SoLuongMua * a.DonGia) >= 5000 AND SUM(b.SoLuongMua * a.DonGia) < 10000 THEN 'Level 2'
WHEN SUM(b.SoLuongMua * a.DonGia) >= 10000 THEN 'V.I.P'
ELSE 'Unknow'
END
FROM Item a JOIN CustomerItem b ON a.MaHang=b.Mahang JOIN Customer c ON b.MaKhach=c.MaKhach
GROUP BY c.Ten;
Hoặc:
SELECT c.Ten, SUM(b.SoLuongMua * a.DonGia) AS [TongTienMua], CASE
WHEN SUM(b.SoLuongMua * a.DonGia) < 5000 THEN 'Level 1'
WHEN SUM(b.SoLuongMua * a.DonGia) >= 5000 AND SUM(b.SoLuongMua * a.DonGia) < 10000 THEN 'Level 2'
WHEN SUM(b.SoLuongMua * a.DonGia) >= 10000 THEN 'V.I.P'
ELSE 'Unknow'
END AS [Level]
FROM Item a JOIN CustomerItem b ON a.MaHang=b.Mahang JOIN Customer c ON b.MaKhach=c.MaKhach
GROUP BY c.Ten;
» Tiếp: TOP « Trước: GROUP BY với HAVING Khóa học qua video: Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript Đăng ký Hội viên Tất cả các video dành cho hội viên Khóa học qua video: Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript Đăng ký Hội viên Tất cả các video dành cho hội viên Copied !!! Copy linkCopied link!Bạn muốn tìm kiếm điều gì?
Từ khóa » Các Câu Lệnh Rẽ Nhánh Trong Sql
-
Câu Lệnh CASE Trong SQL Server
-
Lệnh IF...ELSE Trong SQL Server
-
CASE Trong SQL - Viblo
-
Lệnh Rẻ Nhánh IF ELSE Trong SQL Server - Freetuts
-
IF ELSE - Lệnh Rẽ Nhánh - SQL & Database
-
Lệnh CASE WHEN Trong SQL - Chức Năng, Cú Pháp Và Ví Dụ | KTPM
-
Lệnh IF...ELSE Trong SQL Server - NQ NEWS
-
Câu Lệnh CASE Trong SQL - Lập Trình Từ Đầu
-
Lệnh IF…ELSE Trong SQL Server - Phần Mềm FREE
-
Lệnh IF...ELSE Trong SQL Server - Thương Mại Điện Tử
-
Câu Lệnh CASE Trong SQL
-
Các Cấu Trúc Rẽ Nhánh If Switch Và Vòng Lặp For While Trong Dart
-
Cấu Trúc điều Khiển Trong T-SQL