If..Else ou de Cas dans la Clause where - quelque chose de différent
J'ai lu des charges de q&a, ici, mais aucun ne fit le projet de loi pour ce que je suis en train de réaliser.
Je ne sais même pas si c'est possible! Toute aide/suggestions seraient grandement appréciés.
Je suis en train de construire un conditionnel WHERE
clause de
CustID (int) = @CustomerID
Si @CustomerID = 0
ensuite, je veux que le résultat soit WHERE CustID > 0
(c'est à dire le retour de tous les clients) sinon je veux seulement certains clients CustID = @CustomerID
Est-ce possible?
Vous devez vous connecter pour publier un commentaire.
Il suffit de ne
OÙ (@CustomerID = 0 OU CustID = @code client)
@CustomerID = 0
évalue à true, la deuxième partie est ignoré et toutes les lignes sont en correspondance (note de l'état des tests de la variable ce n'est pas les champs de la table). Si la variable n'est pas nulle la première partie est fausse et laCustID
champ doit correspondre à la variable.quelque chose comme cela?
La façon la plus courante de la simulation d'un if-ELSE dans sql sont des CAS et DÉCODER (oracle): au moins
Ex pseudo:
if (x == 1) then y; else if (x == 2) then z; end if
CAS:
select
case x
when 1 then y
when 2 then z
end example
from dual;
DÉCODER:
select decode(x,1,y,2,z) example from dual;