Maison >base de données >tutoriel mysql >Comment implémenter une clause WHERE conditionnelle basée sur un paramètre dans SQL Server ?

Comment implémenter une clause WHERE conditionnelle basée sur un paramètre dans SQL Server ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-18 11:02:09279parcourir

How to Implement a Conditional WHERE Clause Based on a Parameter in SQL Server?

Clause WHERE conditionnelle dans SQL Server

Question :

Comment créer une clause WHERE conditionnelle dans SQL Server, en particulier lorsque la condition change en fonction des valeurs des paramètres ?

Réponse :

Pour créer une clause WHERE conditionnelle, vous pouvez utiliser une expression dans la clause WHERE qui est évaluée à TRUE pour les enregistrements qui satisfont à la condition et à FALSE pour les enregistrements qui ne la satisfont pas. Considérez la requête suivante :

<code class="language-sql">SELECT 
    DateAppr,
    TimeAppr,
    TAT,
    LaserLTR,
    Permit,
    LtrPrinter,
    JobName,
    JobNumber,
    JobDesc,
    ActQty,
    (ActQty-LtrPrinted) AS L,
    (ActQty-QtyInserted) AS M,
    ((ActQty-LtrPrinted)-(ActQty-QtyInserted)) AS N
FROM 
    [test].[dbo].[MM]
WHERE 
    DateDropped = 0
    AND (
    (ISNULL(@JobsOnHold, 0) = 1 AND DateAppr >= 0) 
    OR 
    (ISNULL(@JobsOnHold, 0) != 1 AND DateAppr != 0)
    )</code>

Dans cette requête, la clause WHERE contient les conditions suivantes :

<code class="language-sql">(ISNULL(@JobsOnHold, 0) = 1 AND DateAppr >= 0) 
OR 
(ISNULL(@JobsOnHold, 0) != 1 AND DateAppr != 0)</code>

Cette expression conditionnelle est évaluée à VRAI pour les enregistrements qui satisfont :

  • Si @JobsOnHold est égal à 1, alors DateAppr doit être supérieur ou égal à 0.
  • Si @JobsOnHold n'est pas égal à 1, alors DateAppr ne doit pas être égal à 0.

En utilisant cette expression conditionnelle, vous pouvez appliquer dynamiquement différentes conditions à la requête en fonction de la valeur du paramètre @JobsOnHold. Cela permet une plus grande flexibilité et un plus grand contrôle lors du filtrage des données.

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