Maison > base de données > tutoriel mysql > Comment puis-je utiliser correctement une instruction CASE dans une clause WHERE de SQL Server 2008 ?

Comment puis-je utiliser correctement une instruction CASE dans une clause WHERE de SQL Server 2008 ?

DDD
Libérer: 2025-01-11 10:50:43
original
383 Les gens l'ont consulté

How Can I Correctly Use a CASE Statement in a SQL Server 2008 WHERE Clause?

SQL Server 2008 : utilisation correcte des instructions CASE dans les clauses WHERE

L'utilisation d'instructions CASE dans les clauses WHERE dans SQL Server 2008 peut entraîner des erreurs si la syntaxe n'est pas précisément correcte. Ce guide clarifie l'utilisation appropriée et propose des alternatives.

Corriger CASE Placement de la déclaration

L'instruction CASE doit faire partie d'une expression plus large au sein de la clause WHERE, et non une condition autonome. Par exemple :

WHERE co.DTEntered = CASE 
                          WHEN LEN('blah') = 0 
                               THEN co.DTEntered 
                          ELSE '2011-01-01' 
                     END
Copier après la connexion

Erreurs de syntaxe courantes

L'exemple suivant illustre une utilisation incorrecte qui entraînera des erreurs :

WHERE 
    CASE LEN('TestPerson')
        WHEN 0 THEN co.personentered  = co.personentered
        ELSE co.personentered LIKE '%TestPerson'
    END 
Copier après la connexion

Une alternative plus efficace : utiliser OR

Pour des scénarios plus simples, combiner les instructions OR fournit souvent une solution plus efficace et plus lisible que l'utilisation de CASE dans la clause WHERE :

WHERE (
        (LEN('TestPerson') = 0 
             AND co.personentered = co.personentered
        ) 
        OR 
        (LEN('TestPerson') <> 0 
             AND co.personentered LIKE '%TestPerson')
      )
Copier après la connexion

Implications sur les performances

Les clauses

WHERE complexes, qu'elles utilisent ou non des instructions CASE ou une autre logique complexe, peuvent avoir un impact négatif sur les performances des requêtes et entraver la capacité de l'optimiseur de requêtes à utiliser efficacement les index. Analysez et optimisez toujours soigneusement votre structure de requête pour de meilleurs résultats.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal