Сценарий:
Вие работите като разработчик на SQL Server, трябва да потърсите dbo.Customer таблица, която има колона CountryShortName със съкращения на държави. Искате да генерирате други колони с Пълно име на държава, като използвате стойностите на колоната CountryShortName. Как бихте направили това?Решение:
Можете да използвате изрази на Case, за да генерирате тази нова колона в зависимост от стойността на CountryShortName. В нашия пример използваме само единични колони, но вие можете да използвате множество колони и да проверявате за множество условия.Нека създадем таблица dbo.Customer с някои примерни данни и след това ще напишем нашия оператор Select с израза 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) Можете да използвате име на колона, за която искате да проверите стойностите веднага след Case, както е показано по-долу. След това напишете всички условия в тази колона и накрая използвайте End като 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
Как да използвате изявление на казус в SQL Server - SQL Server / TSQL урок |
Ако не искате да използвате Else част, можете да я премахнете, но в случай, че ще имате стойност и тя не съвпада с вашите условия, тя ще върне Null. В моя случай, ако стойността не съвпада с моите условия, бих искал да се покажа като „Не е предоставено“, като използвам Else част.
2) Не използвайте име на колона веднага след ключовата дума Case Можете също да напишете изявлението за случая, както е показано по-долу. В примера по-долу не написахме име на колона веднага след Case. В този случай трябва да въвеждаме колона след всяко When. Този начин на писане се използва, когато искате да проверите условията за множество колони или диапазон от стойности.
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
Как да използваме изявление за случай за условно форматиране в SQL заявка - SQL Server / TSQL урок |