Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment utiliser l'instruction Case pour la mise en forme conditionnelle dans la requête Select - Tutoriel SQL Server / TSQL, partie 116

Scénario :

Vous travaillez en tant que développeur SQL Server, vous devez interroger la table dbo.Customer qui a la colonne CountryShortName avec les abréviations de pays. Vous souhaitez générer une autre colonne avec le nom complet du pays en utilisant les valeurs de colonne CountryShortName. Comment feriez-vous cela ?

Solution :

Vous pouvez utiliser des expressions Case pour générer cette nouvelle colonne en fonction de la valeur de CountryShortName. Dans notre exemple, nous n'utilisons que des colonnes uniques, mais vous pouvez utiliser plusieurs colonnes et vérifier plusieurs conditions.
Créons la table dbo.Customer avec quelques exemples de données, puis nous écrirons notre instruction Select avec l'expression Case.
Créer la table dbo.Customer (Id int, FName VARCHAR(50), LName VARCHAR(50), CountryShortName CHAR(2))GOinsert into dbo.CustomerValues ​​(1,'Raza','M','PK' ),(2,'Rita','John','US'),(3,'Sukhi','Singh',Null)
 
 
1) Vous pouvez utiliser le nom de la colonne pour laquelle vous souhaitez vérifier les valeurs juste après Case, comme indiqué ci-dessous. Ensuite, écrivez toutes les conditions sur cette colonne et utilisez enfin End comme NewColumnName IN' Then 'India'Else 'Not Provided' End AS CountryFullNameFrom dbo.Customer
 
Comment utiliser l'instruction Case dans SQL Server - Tutoriel SQL Server / TSQL
 
 Si vous n'aimez pas utiliser la partie Else, vous pouvez la supprimer, mais si vous avez de la valeur et que cela ne correspond pas à vos conditions, cela renverra Null. Dans mon cas, si la valeur ne correspond pas à mes conditions, je voudrais afficher comme "Non fourni" en utilisant la partie Else.
2) N'utilisez pas le nom de la colonne juste après le mot-clé Case Vous pouvez également écrire la déclaration de cas comme indiqué ci-dessous. Dans l'exemple ci-dessous, nous n'avons pas écrit le nom de la colonne juste après Case. Dans ce cas, nous devons taper colonne après chaque Quand. Cette façon d'écrire est utilisée lorsque vous souhaitez vérifier les conditions de plusieurs colonnes ou plages de valeurs.
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 CountryFullNameFrom dbo.Customer
 
Comment utiliser l'instruction Case pour la mise en forme conditionnelle dans une requête SQL - Tutoriel SQL Server / TSQL