Maison > base de données > tutoriel mysql > Comment implémenter une clause WHERE conditionnelle dans SQL Server sans Dynamic SQL ?

Comment implémenter une clause WHERE conditionnelle dans SQL Server sans Dynamic SQL ?

Mary-Kate Olsen
Libérer: 2025-01-18 11:06:09
original
756 Les gens l'ont consulté

How to Implement a Conditional WHERE Clause in SQL Server Without Dynamic SQL?

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

Dans cette requête :

    La fonction
  • ISNULL() vérifie si le paramètre @JobsOnHold est vide et renvoie 0 s'il est vide.
  • L'expression conditionnelle entre parenthèses vérifie la valeur du paramètre @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.
  • L'opérateur
  • 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!

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