sql >> Databáze >  >> RDS >> Sqlserver

Jak používat Case Statement pro podmíněné formátování ve Select Query - SQL Server / TSQL výukový program, část 116

Scénář:

Pracujete jako vývojář SQL Serveru, potřebujete dotaz na tabulku dbo.Customer, která má sloupec CountryShortName se zkratkami zemí. Chcete vygenerovat další sloupce s celým názvem země pomocí hodnot sloupců CountryShortName. Jak byste to udělali?

Řešení:

Tento nový sloupec můžete vygenerovat pomocí výrazů Case v závislosti na hodnotě CountryShortName. V našem příkladu používáme pouze jednotlivé sloupce, ale můžete použít více sloupců a zkontrolovat více podmínek.
Vytvořme tabulku dbo.Customer s ukázkovými daty a poté napíšeme příkaz Select s výrazem 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) Můžete použít Název sloupce, u kterého chcete zkontrolovat hodnoty hned po Case, jak je uvedeno níže. Poté do tohoto sloupce zapište všechny podmínky a nakonec použijte End jako 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
 
Jak používat Case Statement v SQL Server – SQL Server / Výukový program TSQL
 
 Pokud nechcete používat Else část, můžete ji odstranit, ale v případě, že budete mít hodnotu a nebude odpovídat vašim podmínkám, vrátí Null. V mém případě:Pokud hodnota neodpovídá mým podmínkám, chtěl bych pomocí části Else zobrazit jako „Neposkytováno“.
2) Nepoužívejte název sloupce hned za klíčovým slovem Case Můžete také napsat prohlášení o případu, jak je uvedeno níže. V níže uvedeném příkladu jsme nezapsali název sloupce hned za Case. V tomto případě musíme zadat sloupec po každém When. Tento způsob zápisu se používá, když chcete zkontrolovat podmínky pro více sloupců nebo rozsah hodnot.
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
 
Jak používat Case Statement pro podmíněné formátování v dotazu SQL – SQL Server / Výukový program TSQL
 

  1. Statické funkce a pod

  2. Jak funguje funkce REGEX_REPLACE() v MySQL

  3. Počítání odkazů na záznam v tabulce pomocí cizích klíčů

  4. Vytvořte HTML tabulku pomocí SQL FOR XML