Maison >base de données >tutoriel mysql >Comment une clause WHERE peut-elle optimiser les mises à jour des instructions CASE dans SQL Server 2005 ?

Comment une clause WHERE peut-elle optimiser les mises à jour des instructions CASE dans SQL Server 2005 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-28 09:27:11272parcourir

How Can a WHERE Clause Optimize CASE Statement Updates in SQL Server 2005?

Utilisation d'une clause WHERE pour optimiser les mises à jour de l'instruction CASE dans SQL Server 2005

Dans SQL Server 2005, l'instruction CASE peut être utilisée pour mettre à jour enregistrements basés sur des conditions spécifiées. Bien que l'utilisation de la clause ELSE puisse gérer les lignes non affectées, elle peut entraîner des analyses inutiles de la table entière. Ce problème peut être résolu en utilisant une clause WHERE.

Considérez l'instruction suivante :

UPDATE dbo.TestStudents  
SET LASTNAME = 
( CASE  
    WHEN (LASTNAME = 'AAA') THEN 'BBB' 
    WHEN (LASTNAME = 'CCC') THEN 'DDD' 
    WHEN (LASTNAME = 'EEE') THEN 'FFF' 
    ELSE  (LASTNAME)
END )

Cette instruction mettra à jour les enregistrements dans la table 'dbo.TestStudents', en modifiant les valeurs 'LASTNAME' comme selon les conditions spécifiées. Cependant, la clause ELSE évaluera chaque enregistrement de la table, même ceux qui ne sont pas affectés par les conditions.

Pour optimiser cette instruction, une clause WHERE peut être incorporée pour filtrer les enregistrements qui doivent être mis à jour :

UPDATE dbo.TestStudents  
SET     LASTNAME =  CASE  
                        WHEN LASTNAME = 'AAA' THEN 'BBB' 
                        WHEN LASTNAME = 'CCC' THEN 'DDD' 
                        WHEN LASTNAME = 'EEE' THEN 'FFF' 
                        ELSE LASTNAME
                    END 
WHERE   LASTNAME IN ('AAA', 'CCC', 'EEE')

En ajoutant la clause WHERE, l'instruction évalue uniquement les enregistrements dont la valeur « LASTNAME » est « AAA », « CCC » ou « EEE ». Cela améliore les performances et évite les analyses inutiles des lignes non affectées. Par conséquent, l'incorporation d'une clause WHERE est une technique recommandée pour optimiser les mises à jour des instructions CASE dans SQL Server 2005.

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:
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