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
Libérer: 2024-12-28 09:27:11
original
237 Les gens l'ont consulté

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 )
Copier après la connexion

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')
Copier après la connexion

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal