2017-09-30 7 views
0

par exemple, select * d'un où id = id @ et la date entre @ date1 et @ date2
quand je suis passé @ id = 1 @ date1 = '09/29/17'et @ date2 = '09/30/17 ' puis une sortie est correcteComment créer une requête avec plusieurs où les colonnes et la valeur sont en option

Lorsque j'ai transmis @ id = 0 (signifie aucun ID trouvé dans un tableau) @ date1 = '09/29/17'and @ date2 = '09/30/17' puis sortie est entre la date et ignorer la colonne id

signifie que je veux que les filtres comme un site commercial

Répondre

0

La façon dont vous arriver serait d'utiliser un ou sur la colonne ID, de quitter votre SQL ressembler à:

SELECT * 
FROM a 
WHERE (@id=0 OR [email protected]) 
    AND date BETWEEN @date1 AND @date2 

La chose que vous devez être prudent et conscient de l'utilisation de ce type d'approche est que en fonction de votre SGBD, vous finirez probablement dans un scénario où l'exécution est optimisée quel que soit le premier chemin d'exécution. Si c'est une très grande table, cela pourrait causer des problèmes.