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

Come utilizzare l'istruzione Case per la formattazione condizionale in Select Query - Tutorial SQL Server/TSQL Parte 116

Scenario:

Stai lavorando come sviluppatore di SQL Server, devi interrogare la tabella dbo.Customer che ha la colonna CountryShortName con le abbreviazioni del paese. Si desidera generare altre colonne con il nome completo Paese utilizzando i valori di colonna CountryShortName. Come lo faresti?

Soluzione:

È possibile utilizzare le espressioni Case per generare questa nuova colonna a seconda del valore di CountryShortName. Nel nostro esempio utilizziamo solo colonne singole, ma puoi utilizzare più colonne e verificare la presenza di più condizioni.
Creiamo la tabella dbo.Customer con alcuni dati di esempio e quindi scriveremo la nostra istruzione Select con l'espressione 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) È possibile utilizzare Nome colonna per il quale si desidera controllare i valori subito dopo Caso, come mostrato di seguito. Quindi scrivi tutte le condizioni su quella colonna e infine usa 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
 
Come utilizzare l'istruzione Case in SQL Server - Tutorial SQL Server/TSQL
 
 Se non ti piace usare la parte Altro, puoi rimuoverla ma nel caso in cui avrai valore e non corrisponderà alle tue condizioni, restituirà Null. Nel mio caso, se il valore non corrisponde alle mie condizioni, vorrei essere visualizzato come "Non fornito" utilizzando Else part.
2) Non utilizzare il nome della colonna subito dopo la parola chiave Case Puoi anche scrivere la dichiarazione del caso come mostrato di seguito. Nell'esempio seguente, non abbiamo scritto il nome della colonna subito dopo il caso. In questo caso dobbiamo digitare colonna dopo ogni Quando. Questo modo di scrivere viene utilizzato quando si desidera controllare le condizioni per più colonne o intervalli di valori.
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
 
Come utilizzare l'istruzione Case per la formattazione condizionale in query SQL - Tutorial SQL Server/TSQL