Instruction CASE dans la clause SQL WHERE
En SQL, l'instruction CASE fournit un mécanisme d'évaluation conditionnelle. Il vous permet de spécifier différentes conditions et de renvoyer les valeurs numériques correspondantes en fonction de ces conditions. Ceci est particulièrement utile dans les clauses WHERE pour filtrer les données en fonction de différentes conditions.
Supposons le scénario suivant : vous devez récupérer les données d'une vue nommée "viewWwhat" en fonction des valeurs du paramètre de type d'emplacement "@locationType" et du paramètre d'ID d'emplacement "@locationID". Le type d'emplacement peut être « emplacement », « zone » ou « division ».
Utiliser l'instruction CASE
Pour obtenir cette fonctionnalité à l'aide d'une instruction CASE dans la clause WHERE, vous pouvez créer la requête comme suit :
<code class="language-sql">SELECT column1, column2 FROM viewWhatever WHERE @locationID = CASE @locationType WHEN 'location' THEN account_location WHEN 'area' THEN xxx_location_area WHEN 'division' THEN xxx_location_division END</code>
Description
Évitez les opérateurs égaux redondants
Veuillez noter que dans l'exemple fourni, la partie "=@locationID" à la fin de chaque clause WHEN est incorrecte. L'instruction CASE elle-même attribue la colonne correcte à comparer avec "@locationID".
SQL dynamique
Si votre type d'emplacement et les noms de colonnes ne sont pas connus lorsque vous écrivez la requête, vous pouvez créer une instruction CASE à la volée à l'aide d'une procédure stockée ou de SQL dynamique.
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!