Clause WHERE conditionnelle dans SQL Server
Question :
Comment implémenter une clause WHERE conditionnelle dans SQL Server sans utiliser de SQL dynamique ni créer plusieurs requêtes avec des clauses différentes ?
Réponse :
Vous pouvez utiliser les méthodes suivantes :
<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 :
ISNULL()
vérifie si le paramètre @JobsOnHold
est vide et renvoie 0 s'il est vide. @JobsOnHold
. Si la valeur est 1, la colonne DateAppr
doit être supérieure ou égale à 0. Si la valeur est différente de 1, la colonne DateAppr
ne doit pas être égale à 0. AND
s'assure que les deux conditions sont remplies. Cette approche vous permet d'utiliser une seule requête et une clause WHERE conditionnelle pour filtrer les résultats en fonction de la valeur d'un paramètre. Il s'agit d'une manière plus efficace et plus concise d'écrire de telles requêtes que d'utiliser plusieurs requêtes ou du 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!