• Trang chủ
  • Hướng dẫn
  • Tin Học & Công Nghệ
  • Thủ thuật
  • App – Game
  • Chuyển đổi số 4.0
No Result
View All Result
ECCI
  • Trang chủ
  • Hướng dẫn
  • Tin Học & Công Nghệ
  • Thủ thuật
  • App – Game
  • Chuyển đổi số 4.0
No Result
View All Result
ECCI
No Result
View All Result

Cách dùng lệnh CASE trong SQL Server với lệnh SELECT và UPDATE

Ecci by Ecci
12/08/2022
in Tin Học & Công Nghệ, Hướng dẫn, Thủ thuật
265 0
0
cách dùng lệnh CASE trong SQL Server
145
SHARES
3k
VIEWS
Share on FacebookShare on Twitter

Cách dùng lệnh CASE trong SQL Server có thể khá dễ dàng với những người nhiều kinh nghiệm. Tuy nhiên nếu bạn mới làm quen với phần mềm quản trị cơ sở dữ liệu này thì việc sử dụng lệnh CASE WHEN một cách linh hoạt trong từng trường hợp lại không hề đơn giản. Trong bài viết này, hãy cùng Ecci tìm hiểu một cách tường tận về lệnh CASE WHEN nhé.

Mục lục bài viết

  • Tổng quan về câu lệnh CASE WHEN trong SQL Server
  • Cách dùng lệnh CASE trong SQL Server kết hợp với lệnh SELECT
    • Cú pháp 1
    • Cú pháp 2
  • Cách dùng lệnh CASE trong SQL Server kết hợp với lệnh UPDATE
    • Cú pháp 1
    • Cú pháp 2
  • Những lưu ý về cách dùng lệnh CASE trong SQL Server
    • Kiểu dữ liệu
    • Dùng nhiều lệnh Case When trong SQL
    • Không có ELSE

Tổng quan về câu lệnh CASE WHEN trong SQL Server

CASE WHEN là câu lệnh giúp thiết lập điều kiện rẽ nhánh, có thể áp dụng được với các câu lệnh DML là UPDATE và SELECT. Về mặt chức năng, câu lệnh CASE khá giống với lệnh IF ELSE trong SQL.

Hàm CASE có 2 định dạng khác nhau đó là Simple CASE và Searched CASE. Mỗi hàm có ý nghĩa như sau:

  • Simple CASE: Đây là hàm CASE dưới dạng đơn giản, được dùng vào mục đích so sánh giữa 1 biểu thức cụ thể và 1 bộ những biểu thức đơn giản để tìm ra kết quả.
  • Searched CASE: Hàm CASE này có dạng tìm kiếm, được sử dụng để đánh giá 1 bộ các biểu thức Boolean để tìm ra kết quả.
CASE WHEN là câu lệnh giúp thiết lập điều kiện rẽ nhánh
CASE WHEN là câu lệnh giúp thiết lập điều kiện rẽ nhánh

Cách dùng lệnh CASE trong SQL Server kết hợp với lệnh SELECT

Khi kết hợp lệnh SELECT với CASE WHEN thì lệnh CASE-WHEN sẽ được trình bày ở cột riêng, người dùng có thể đặt bí danh tùy ý cho cột này. Có hai cú pháp khi sử dụng lệnh CASE WHEN cho SELECT đó là:

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ụ về lệnh CASE WHEN kết hợp với SELECT trong SQL
Ví dụ về lệnh CASE WHEN kết hợp với SELECT trong SQL

Ví dụ:

Giả sử ta có bảng dữ liệu sau tên là Student:

studentid studentname gender
1 A 1
2 B 0
3 C Null
4 A 0

Nếu muốn hiển thị dữ liệu của toàn bộ bảng Student, trong đó cột gender hiển thị giá trị “Male” thay vì 1, “Female” thay vì 0 và “Unknown” thay vì Null, ta sẽ viết cú pháp như sau:

SELECT studentid, studentname, GENDER = CASE gender

WHEN 1 then ‘Male’

WHEN 0 then ‘Female’

ELSE ‘Unknown’

END

FROM Student;

Hoặc:

SELECT studentid, studentname, CASE gender

WHEN 1 then ‘Male’

WHEN 0 then ‘Female’

ELSE ‘Unknown’

END AS GENDER

FROM Student;

Sau khi nhập đúng cú pháp trên, bạn sẽ nhận được kết quả như sau:

studentid studentname gender
1 A Male
2 B Female
3 C Unknown
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ụ:

Muốn hiển thị bảng gồm tên khách hàng, số tiền mua hàng của mỗi khách hàng và cột Level dùng để phân loại khách hàng. Trong đó giá trị của cột Level tuân theo tiêu chí sau:

Nếu số tiền mua hàng của khách < 5000 => Điền “Level1”

Từ 5000 đến <10000 => Điền “Level2”

>=10000 => Điền “V.I.P”

Để giải quyết yêu cầu này, ta nhập cú pháp 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 ‘Unknown’

END

FROM Item a JOIN CustomerItem b ON a.MaHang=b.Mahang JOIN Customer c ON b.MaKhach=c.MaKhach

GROUP BY c.Ten;

Xem thêm: Tải IDM Full Crack mới nhất bản quyền vĩnh viễn link Drive

Cách dùng lệnh CASE trong SQL Server kết hợp với lệnh UPDATE

Khi cần điều chỉnh dữ liệu trong trường hợp có nhiều tính huống xảy ra thì có thể kết hợp lệnh UPDATE với CASE WHEN. Sau đây là cú pháp thực hiện:

Cú pháp 1

UPDATE Tên_bảng SET Tên_cột = CASE Tên_cột1

WHEN Giá_trị1 then Giá trị 1_1

WHEN Giá_trị2 then Giá trị 2_2

…

ELSE Giá_trị

END;

Cú pháp 2

UPDATE Tên_bảng SET Tên_cột = CASE

WHEN Điều_kiện1 then Giá trị 1_1

WHEN Điều_kiện2 then Giá trị 2_2

…

ELSE Giá_trị

END;

Ví dụ về cách dùng lệnh CASE WHEN kết hợp với UPDATE
Ví dụ về cách dùng lệnh CASE WHEN kết hợp với UPDATE

Những lưu ý về cách dùng lệnh CASE trong SQL Server

Kiểu dữ liệu

Những người mới làm quen với SQL Server hay mắc phải lỗi về kiểu dữ liệu. Khi so sánh sai kiểu dữ liệu thi câu lệnh Case When sẽ không hoạt động đúng cách. Thậm chí một số hệ cơ sở dữ liệu còn hiển thị kết quả “Invalid Input Syntax”.

Trước khi viết lệnh Case When để so sánh cột nào đó thì tốt nhất bạn nên mở bảng đó ra để kiểm tra kiểu dữ liệu trước khi thực hiện lệnh.

Dùng nhiều lệnh Case When trong SQL

Khi bạn sử dụng nhiều Case When hãy lưu ý rằng:

  • Sau khi lệnh CASE WHEN đã đúng (true) và được thực thi, CASE sẽ quay lại đầu vòng lặp và kiểm tra tiếp hàng phía sau, bất chấp số lượng SQL bên dưới.
  • Trong trường hợp WHEN được xác nhận là sai (false) thì CASE sẽ di chuyển đến CASE kế tiếp. Điều này có thể khiến cho performance bị ảnh hưởng nếu số lượng CASE WHEN cần check quá nhiều.

Không có ELSE

Một số bạn viết lệnh Case When nhưng hay bỏ qua trường hợp else. Điều này sẽ dẫn đến trường hợp sau:

Nếu không có ELSE và toàn bộ các điều kiện WHEN đều sai thì giá trị trả về sẽ là NULL.

Một số lưu ý khi sử dụng lệnh CASE WHEN trong SQL Server
Một số lưu ý khi sử dụng lệnh CASE WHEN trong SQL Server

Trên đây là cách dùng lệnh CASE trong SQL Server với các lệnh UPDATE và SELECT. Ecci sẽ còn cập nhật thêm nhiều bài viết hữu ích khác liên quan đến chủ đề SQL trên website Ecci.com.vn. Các bạn chú ý đón đọc để ngày càng hoàn thiện và nâng cao kỹ năng của mình nhé.

Có thể bạn cần: Link download, hướng dẫn cài đặt Photoshop CS6 mới nhất

Ban biên tập: Ecci.com.vn

5/5 - (1 bình chọn)
Previous Post

Top 12 Phần mềm thiết yếu cho máy tính PC và laptop tốt nhất

Next Post

Cách tra cứu điểm thi theo tên, xem điểm thi vào 10, thi THPT 2023

Ecci

Ecci

ECCI - Kiến thức & Công nghệ được thành lập năm 2019. Chuyên trang chia sẻ kiến thức ngành công nghệ thông tin chuyên sâu

Next Post
tra cứu điểm thi theo tên

Cách tra cứu điểm thi theo tên, xem điểm thi vào 10, thi THPT [year]

Coding Standards là gì

Coding Standards là gì? Bộ quy tắc viết code trong Java đầy đủ nhất

Phần mềm lọc tạp âm

Top 15 phần mềm lọc tạp âm cho điện thoại và PC hiệu quả [year]

Trả lời Hủy

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 *

Bài viết xem nhiều

Anhcuoiviet.vn Kho ảnh đẹp miễn phí đầy đủ nhất hiện nay

Anhcuoiviet.vn Kho ảnh đẹp miễn phí đầy đủ nhất hiện nay

07/11/2022
Nitro Pro

Tải Nitro Pro 13 Full Crack vĩnh viễn mới nhất thành công 100%

20/12/2022
AIO Tool

Tải AIO Tool v3.1.3 mới nhất – Tool kích hoạt Windows & Office 2023

20/12/2022
Active Win 11

Tổng hợp 06 cách crack Active Win 11 vĩnh viễn, Đã test thành công

20/12/2022
Foxit Reader full crack

Tải Foxit Reader Full Crack 12.0.1.12430 bản mới nhất 2023

20/12/2022
Tải IDM Full Crack mới nhất bản quyền vĩnh viễn link Drive

Tải IDM Full Crack mới nhất bản quyền vĩnh viễn link Drive

14/12/2022
Hướng dẫn download, cài đặt Photoshop CC 2021 mới nhất

Hướng dẫn download, cài đặt Photoshop CC 2021 mới nhất

14/12/2022
Hình Gái Xinh | trang tổng hợp ảnh sexy, hotgirl, bikini miễn phí đẹp nhất hinhgaixinh.com

Giới thiệu về chúng tôi

Ecci.com.vn

Blog ECCI | Kiến thức & Công nghệ được thành lập năm 2019. Với đội ngũ chuyên nghiệp, mục tiêu của chúng tôi là trở thành một chuyên trang hàng đầu Việt nam về những bài viết, chủ đề chia sẻ kinh nghiệm và hướng dẫn những kiến thức kỹ thuật hữu ích về công nghệ thông tin, từ cơ bản đến chuyên sâu dành cho người dùng và doanh nghiệp. Nhằm mang đến giá trị cao cho bạn đọc nâng cao và chuyên sâu hơn nữa, 2022 Ecci đã hợp tác chiến lược cùng với Kiến Thức Phần Mềm (KTPM) tại địa chỉ website kienthucphanmem.com hy vọng sẽ mang lại những trải nghiệm tuyệt vời nhất.


Liên hệ & Quảng cáo

- Guest Post
- Hotline bài TOP
- Banner, texlink
- Backlink bài TOP...
- Số Fax: 3899 1749

Mọi thông tin liên lạc hoặc hợp tác quảng cáo vui lòng liên hệ qua Fanpage: m.me/ecci.com.vn

Kết nối với chúng tôi

Facebook Twitter Pinterest LinkedIn Reddit

© 2019 Ecci.com.vn

  • Điều khoản sử dụng
  • Chính sách bảo mật
  • Tuyên bố miễn trừ trách nhiệm

No Result
View All Result
  • Trang chủ
  • Hướng dẫn
  • Tin Học & Công Nghệ
  • Thủ thuật
  • App – Game
  • Chuyển đổi số 4.0

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In