Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да използвате изявление за случай за условно форматиране в заявка за избор - SQL Server / TSQL урок, част 116

Сценарий:

Вие работите като разработчик на 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 урок
 

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използвайте FILEGROUP_ID(), за да върнете идентификатора на файлова група в SQL Server

  2. Оптимизиран SQL за дървовидни структури

  3. GROUP BY за комбиниране/свързване на колона

  4. Как да инсталирате Azure Data Studio на Mac

  5. Как програмно определяте кои SQL таблици имат колона за идентичност