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