SQLShack (Français)

SQL Server instruction est équivalente à l’instruction if-then dans Excel.

L’instruction de CAS est utilisée pour implémenter la logique sur laquelle vous souhaitez définir la valeur d’une colonne en fonction des valeurs des autres colonnes.

L’instruction SQL Server CASE se compose d’au moins une paire D’INSTRUCTIONS WHEN et THEN. L’instruction WHEN spécifie la condition à tester. L’instruction THEN spécifie l’action si la condition WHEN renvoie TRUE.,

L’instruction ELSE est facultative et s’exécute lorsqu’aucune des conditions WHEN ne renvoie true. L’instruction CASE se termine par un mot-clé END.

dans cet article, nous allons jeter un oeil à un certain nombre d’exemples différents de l’énoncé de cas. Mais avant de faire cela, nous allons créer des données factices pour travailler avec.,/td>

créer une salle d’exposition de base de données;
GO
utiliser ShowRoom;
créer des voitures de TABLE
(
id int,
nom VARCHAR(50) NOT NULL,
entreprise varchar(50) not null,
puissance int not null,
couleur varchar(50) not null,
modèle int not null,
condition varchar(50) not null
)

le script ci-dessus a créé une base de données factice appelée showroom avec une table appelée cars., Le tableau Cars comporte sept colonnes: id, Nom, Société, puissance, Couleur, Modèle et état.

insérons maintenant quelques données factices dans le tableau Cars., Exécutez le script suivant:

nous allons vérifier comment notre base de données ressemble, exécutez le script suivant:

1
SÉLECTIONNEZ * à PARTIR de Voitures

La sortie ressemble à ceci:

Vous pouvez voir que la condition de la colonne contient un X dans chaque ligne pour le moment., Nous allons définir la valeur de la colonne condition, en fonction de la colonne modèle, en utilisant L’instruction CASE afin que vous puissiez voir clairement ce qui se passe.,

The syntax of the CASE statement is pretty straight forward:

1
2
3
4
5

SELECT column1,
column2,
CASE WHEN CONDITION THEN ‘Value1’
ELSE ‘Value2’ END AS columnX
FROM Cars

The CASE statement has to be included inside the SELECT Statement., Il commence par le mot-clé CASE suivi du mot-clé WHEN, puis de la CONDITION.

la condition peut être n’importe quelle expression SQL Server valide qui renvoie une valeur booléenne. Par exemple, la condition peut être model > 2000, la clause THEN est utilisée après la CONDITION. Si la CONDITION renvoie true, la valeur qui suit la clause THEN est stockée dans columnX. Else, la valeur après la clause ELSE, sera également stockée dans columnX. L’instruction SQL Server CASE se termine par la clause END.,

exemples d’instruction CASE

voyons maintenant l’instruction CASE en action.

dans une section précédente, nous avons créé une table nommée Cars dans la base de données ShowRoom.

la colonne condition avait la valeur X pour toutes les lignes. Nous utiliserons L’instruction SQL Server CASE pour définir la valeur de la colonne de condition sur « New” si la colonne de modèle a une valeur supérieure à 2000, sinon la valeur de la colonne de condition sera définie sur « Old”.,ok at the following script:

1
2
3
4
5

SELECT name,
model,
CASE WHEN model > 2000 THEN ‘New’
ELSE ‘Old’ END AS condition
FROM Cars

The above script displays the name, model and condition columns from the Cars table., La sortie du script ci-dessus ressemble à ceci:

Vous pouvez voir que la valeur de X dans la colonne condition a été remplacé par le « Nouveau” et « Ancien” sur le modèle de la voiture.

plusieurs conditions dans L’instruction CASE

Vous pouvez évaluer plusieurs conditions dans l’instruction CASE.,

écrivons une instruction SQL Server CASE qui définit la valeur de la colonne condition sur « New” si la valeur de la colonne modèle est supérieure à 2010, sur « Average » si la valeur de la colonne modèle est supérieure à 2000 et sur  » Old  » si la valeur de la colonne modèle est supérieure à 1990.,

SELECT nom,
le modèle,
CAS où le modèle > 2010 PUIS ‘Nouveau’
LORSQUE le modèle > 2000 « Moyenne »
LORSQUE le modèle > 1990 PUIS « Vieux »
ELSE ‘Vieux’ FIN COMME condition
DE Voitures

La sortie du script ci-dessus ressemble à ceci:

Dans le script ci-dessus, nous avons assigné trois valeurs différentes de la condition de la colonne en fonction de la valeur dans la colonne du modèle.,

Cependant, dans le script ci-dessus, les conditions se chevauchent. le modèle avec une valeur supérieure à 2010 a également une valeur supérieure à 2000 et 1990. Une meilleure façon d’implémenter plusieurs conditions consiste à utiliser des opérateurs logiques comme AND, OR, NOT, etc.,N de modèle: > 2010 PUIS ‘Nouveau’

LORSQUE le modèle > 2000 ET modèle <2010 PUIS ‘Moyenne’
LORSQUE le modèle > 1990 ET modèle <2000 PUIS ‘Vieux’
ELSE ‘Vieux’ FIN COMME condition
Voitures

La sortie du script ci-dessus ressemble à ceci:

Nous pouvons également évaluer les conditions multiples de différentes colonnes à l’aide de SQL Server de CAS., Dans l’exemple suivant, nous affecterons la valeur de « nouveau blanc” à la colonne condition où le modèle est supérieur à 2010 et la couleur est blanche.,POULE « Nouveau »

LORSQUE le modèle > 2000 ET modèle <2010 PUIS ‘Moyenne’
LORSQUE le modèle > 1990 ET modèle <2000 PUIS le « Vieux »
ELSE ‘Vieux’ FIN COMME une condition
Voitures

La sortie ressemble à ceci:

Vous pouvez voir à partir de la ligne 5 que, depuis, la couleur est le blanc, et le modèle est supérieure à 2010, la valeur de la colonne condition a été réglé sur « Nouveau Blanc” dans la sortie.,

utilisation de GROUP BY with SQL Server CASE statement

L’instruction CASE peut également être utilisée conjointement avec L’instruction GROUP BY afin d’appliquer des fonctions d’agrégation.,v id= »1dd7e33b85″>

1
2
3
4
5
6
7
SELECT
CAS où le modèle > 2000 PUIS ‘Nouveau’
ELSE ‘Vieux’ FIN COMME condition,
COUNT(1) En tant QUE comte
Voitures
GROUP BY CAS où le modèle > 2000 PUIS ‘Nouveau’
ELSE ‘Vieux’ FIN

Dans le script ci-dessus, nous utilisons la fonction d’agrégat COUNT avec l’instruction de CAS.,

L’instruction SQL Server CASE définit la valeur de la colonne condition sur « New” OU « Old”. Dans la clause GROUP BY, nous spécifions que le nombre correspondant pour  » New  » est incrémenté de 1, chaque fois qu’une valeur de modèle supérieure à 2000 est rencontrée. L’Autre section signifie que nous augmentons le nombre de « Vieux” par 1 si la valeur du modèle est de 2000 ou moins. La sortie du script ci-dessus ressemble à ceci:

puisque notre ensemble de données a cinq véhicules avec une valeur pour ‘model’ supérieure à 2000, vous pouvez voir un 5 dans la colonne de comptage pour les « nouveaux” véhicules., De même, nous avions 5 véhicules anciens et nous pouvons donc voir 5 pour la colonne de comptage des véhicules « anciens ».

de même, nous pouvons regrouper par Plus de deux valeurs., 2000 « Moyenne »

LORSQUE le modèle > 1990 PUIS « Vieux »
ELSE ‘Vieux’ FIN COMME condition,
COUNT(1) En tant QUE comte
Voitures
GROUP BY CAS où le modèle > 2010 PUIS ‘Nouveau’
LORSQUE le modèle > 2000 « Moyenne »
LORSQUE le modèle > 1990 PUIS « Vieux »
ELSE ‘Vieux’ FIN

Dans le script ci-dessus, nous avons regroupé les données en trois catégories: « Nouveau”, « Moyenne” et « Vieux”.,

La sortie ressemble à ceci:

Vous pouvez voir le nombre de « Nouveau”, « Moyenne” et « Vieux” état des voitures.

Conclusion

L’instruction CASE est utile lorsque vous souhaitez implémenter la logique IF-THEN dans SQL Server. Dans cet article, nous avons vu quelle instruction CASE est avec sa syntaxe. Nous avons également vu différents exemples de déclaration de cas ainsi que son utilisation avec la clause GROUP BY.,

autres grands articles de Ben

  • comprendre le cache du plan de requête SQL Server
  • Quelle est la différence entre les index en cluster et les index Non en cluster dans SQL Server?
  • Comment utiliser les fonctions de la fenêtre
  • l’Interrogation de données à l’aide de SQL Server instruction de CAS
  • Auteur
  • Derniers Posts
Ben Richardson s’exécute sur l’Acuité de la Formation d’un fournisseur leader de SQL formation au royaume-UNI., Il offre une gamme complète de formations SQL, des cours d’introduction à la formation avancée en administration et en entrepôt de données – voir ici pour plus de détails. Acuity a des bureaux à Londres et Guildford, Surrey., Il blogue également occasionnellement sur le blog D’Acuity
voir tous les messages de Ben Richardson

derniers messages de Ben Richardson (voir tout)
  • Power BI: graphiques en cascade et visuels combinés – 19 janvier 2021
  • Power BI: graphiques en cascade bi: mise en forme conditionnelle et couleurs de données en action – 14 janvier 2021
  • Power BI: importation de données depuis SQL Server et MySQL – 12 janvier 2021

Share

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *