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>
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.,
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’
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 »
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″>
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 »
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
voir tous les messages de Ben Richardson
- 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