Tình huống:
Bạn đang làm việc với tư cách là nhà phát triển SQL Server, bạn cần truy vấn bảng dbo.Customer có cột CountryShortName với các chữ viết tắt của quốc gia. Bạn muốn tạo các cột khác có Tên đầy đủ Quốc gia bằng cách sử dụng các giá trị cột CountryShortName. Bạn sẽ làm điều đó như thế nào?Giải pháp:
Bạn có thể sử dụng biểu thức Trường hợp để tạo cột mới này tùy thuộc vào giá trị của CountryShortName. Trong ví dụ của chúng tôi, chúng tôi chỉ sử dụng các cột đơn nhưng bạn có thể sử dụng nhiều cột và kiểm tra nhiều điều kiện.Hãy tạo bảng dbo.Customer với một số dữ liệu mẫu và sau đó chúng tôi sẽ viết câu lệnh Select của mình với biểu thức Case.
Create table dbo.Customer (Id int, FName VARCHAR(50), LName VARCHAR(50), CountryShortName CHAR(2)) GO insert into dbo.Customer Values ( 1,'Raza','M','PK'), (2,'Rita','John','US'), (3,'Sukhi','Singh',Null)
1) Bạn có thể sử dụng Tên cột mà bạn muốn kiểm tra các giá trị ngay sau Trường hợp như hình dưới đây. Sau đó viết tất cả các điều kiện vào cột đó và cuối cùng sử dụng End as NewColumnName
Select FName, LName, CountryShortName, Case CountryShortName When 'Pk' Then 'Pakistan' When 'US' Then 'United States of America' When 'IN' Then 'India' Else 'Not Provided' End AS CountryFullName From dbo.Customer
Cách sử dụng Câu lệnh trường hợp trong SQL Server - Hướng dẫn SQL Server / TSQL |
Nếu bạn không thích sử dụng phần khác, bạn có thể loại bỏ phần đó nhưng trong trường hợp khi bạn sẽ có giá trị và nó không phù hợp với điều kiện của bạn, Nó sẽ trả về Null. Trong trường hợp của tôi, Nếu giá trị không khớp với điều kiện của tôi, tôi muốn hiển thị là "Không được cung cấp" bằng cách sử dụng phần Khác.
2) Không sử dụng Tên cột ngay sau từ khóa Trường hợp
> Bạn cũng có thể viết câu lệnh tình huống như hình dưới đây. Trong ví dụ dưới đây, chúng tôi đã không viết Tên cột ngay sau Trường hợp. Trong trường hợp này, chúng ta phải gõ cột sau mỗi When. Cách viết này được sử dụng khi bạn muốn kiểm tra điều kiện cho nhiều cột hoặc dải giá trị.
Select FName, LName, CountryShortName, Case When CountryShortName='Pk' Then 'Pakistan' When CountryShortName='US' Then 'United States of America' When CountryShortName='IN' Then 'India' Else 'Not Provided' End AS CountryFullName From dbo.Customer
Cách sử dụng Câu lệnh Trường hợp để Định dạng có Điều kiện trong Truy vấn SQL - Hướng dẫn SQL Server / TSQL |