sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan bruger du Case Statement til betinget formatering i Select Query - SQL Server / TSQL Tutorial Del 116

Scenarie:

Du arbejder som SQL Server-udvikler, du skal forespørge på dbo. Kundetabel, der har CountryShortName-kolonnen med landeforkortelser. Du vil generere en anden kolonne med Country Full name ved at bruge CountryShortName kolonneværdier. Hvordan ville du gøre det?

Løsning:

Du kan bruge Kasusudtryk til at generere denne nye kolonne afhængigt af værdien af ​​CountryShortName. I vores eksempel bruger vi kun enkelte kolonner, men du kan bruge flere kolonner og kontrollere for flere betingelser.
Lad os oprette dbo.Kundetabel med nogle eksempeldata, og så skriver vi vores Select-udsagn med Case-udtryk.
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) Du kan bruge Kolonnenavn, som du vil kontrollere værdierne for lige efter Case som vist nedenfor. Skriv derefter alle betingelserne i den kolonne, og brug endelig End som 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
 
Sådan bruges Case Statement i SQL Server - SQL Server / TSQL Tutorial
 
 Hvis du ikke kan lide at bruge Else-delen, kan du fjerne den, men i tilfælde af at du vil have værdi, og den ikke matcher dine betingelser, vil den returnere Null. I mit tilfælde, hvis værdien ikke stemmer overens med mine betingelser, vil jeg gerne vise som "Ikke angivet" ved at bruge Anden del.
2) Brug ikke kolonnenavn lige efter sagsøgeord Du kan også skrive sagsfremstillingen som vist nedenfor. I eksemplet nedenfor skrev vi ikke kolonnenavn lige efter sag. I dette tilfælde skal vi skrive kolonne efter hvert Hvornår. Denne måde at skrive på bruges, når du vil kontrollere betingelser for flere kolonner eller værdiområde.
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
 
Sådan bruger du Case Statement til betinget formatering i SQL Query - SQL Server / TSQL Tutorial
 

  1. Hvordan tilføjer man brugerdefinerede attributter til SQL-forbindelsesstrengen?

  2. MySQL månedligt udsalg af de seneste 12 måneder inklusive måneder uden udsalg

  3. Oracle-forespørgsel til at finde alle forekomster af et tegn i en streng

  4. Indsæt hurtigt 2 millioner rækker i SQL Server