Instruction SQL CASE – Formulaires simples et recherchés
L’objectif principal d’une expression SQL CASE renvoie une valeur basée sur un ou plusieurs tests conditionnels. Les expressions de CAS d’utilisation n’importe où dans une expression d’instruction SQL sont autorisées. Bien qu’il s’agisse vraiment d’une expression, certaines personnes les appellent des « déclarations de CAS. »Cela provient probablement de leur utilisation dans les langages de programmation.
L’expression de CAS SQL est extrêmement polyvalente et utilisée dans les requêtes SQLServer. En particulier, il est utilisé dans la liste des colonnes SELECT, les clauses GROUP BY, HAVING et ORDER BY. L’expression de CASSE standardise également (embellit) les données ou effectue des vérifications pour se protéger contre les erreurs, telles que diviser par zéro.
Tous les exemples de cette leçon sont basés sur Microsoft SQL Server Management Studio et la base de données AdventureWorks2012. Commencer à utiliser SQL Server à l’aide de mon guide gratuit et des outils Microsoft gratuits.
Instruction CASE SQL Server
Il existe deux formes pour la clause CASE : simple et recherchée. Les deux formulaires renvoient un résultat basé sur le test d’une expression. Bien que techniquement des expressions, vous verrez que beaucoup de gens s’y réfèrent comme une déclaration.
L’instruction SQL CASE simple est utilisée pour les tests d’égalité. Il teste une expression par rapport à plusieurs valeurs, ce qui le rend idéal pour transformer un ensemble de valeurs, telles que les abréviations en leur forme longue correspondante.
L’instruction SQL CASE recherchée utilise un format d’évaluation d’expression plus complet. C’est bien lorsque vous souhaitez travailler avec des fourchettes de données, telles que des fourchettes de salaires ou des âges.
Nous commençons d’abord par le formulaire simple, puis couvrons la recherche.
Expression de CAS Forme simple
La forme simple de l’expression de CAS compare les résultats d’une expression avec une série de tests et renvoie un « résultat” lorsque le « test” renvoie true.
La forme générale pour une expression de CAS de formulaire simple est :
CASE expression
WHEN test THEN result
…
ELSE otherResult
END
L’instruction ELSE est facultative dans une expression de CAS. Il renvoie « otherResult » lorsqu’aucune correspondance n’est effectuée et qu’ELSE est présent. S’il n’y a pas d’AUTRE dans l’instruction CASE, elle renvoie NULL.
La clause ELSE est un excellent moyen d’attraper des valeurs de données mauvaises ou inattendues et de renvoyer un résultat autre que NULL.
Exemple de transformation de données
Il existe plusieurs raisons d’utiliser une instruction CASE. La première consiste à transformer des données d’un ensemble de valeurs à un autre. Par exemple, pour afficher le sexe d’un employé comme « Homme” ou « Femme”, lorsque vos données sont encodées en « M” ou « F”, utilisez une expression de CASSE pour tester la représentation à un seul caractère et renvoyer la forme longue correspondante.
L’exemple pour ceci est:
SELECT JobTitle,
CASE Gender
WHEN 'M' THEN 'Male'
WHEN 'F' THEN 'Female'
ELSE 'Unknown Value'
END
FROM HumanResources.Employee
Exemple de normalisation des données
De même, vous pouvez utiliser une clause CASE simple pour standardiser plusieurs valeurs en une seule. L’extension de notre exemple mappe plusieurs variantes à Male ou Female:
Vous vous demandez peut-être si vous pouviez simplement créer une autre table dans votre base de données et l’utiliser pour rechercher les valeurs. J’aurais tendance à convenir que ce serait le meilleur, mais dans de nombreuses situations, vous n’aurez pas l’autorisation de créer des tables dans la base de données. Dans ce cas, vous êtes laissé à l’esprit une instruction SELECT fournit.
Résumé
Voici quelques éléments à prendre en compte lors de l’utilisation de l’expression de CAS simple :
- N’autorise que les comparaisons d’égalité.
- Évalue les tests sont évalués dans l’ordre défini.
- Renvoie le résultat correspondant au premier VRAI test.
- Si aucune correspondance n’est effectuée, case renvoie NULL sauf si ELSE est présent.
Formulaire de recherche d’expression de CAS
Le formulaire de recherche de l’expression de CAS permet des tests plus polyvalents. Utilisez-le pour évaluer une plus grande gamme de tests. En fait, toute expression booléenne est qualifiée de test.
Une expression de casse recherchée a ce format
CASE
WHEN booleanExpression THEN result
…
ELSE otherResult
END
Avec le formulaire recherché, utilisez les clauses WHEN pour évaluer les expressions booléennes. Le résultat de la première expression booléenne VRAIE est renvoyé.
Vous trouverez ci-dessous la forme de cas recherchée de l’exemple de genre de l’employé de la section précédente.
Nous avons également utilisé ce même exemple pour l’instruction SQL case simple. Je l’ai fait pour que vous puissiez voir la différence subtile. Notez que chaque clause WHEN contient désormais le test sous forme d’expression booléenne.
Comparaison des formulaires Simples et recherchés CAS SQL
Voici les instructions côte à côte :
Leave a Reply