Comment utiliser une Instruction if dans la Clause where en SQL?
J'ai besoin d'utiliser une instruction if à l'intérieur de la clause where en sql.
Select * from Customer
WHERE (I.IsClose=@ISClose OR @ISClose is NULL)
AND
(C.FirstName like '%'+@ClientName+'%' or @ClientName is NULL )
AND
if (@Value=2)
begin
(I.RecurringCharge=@Total or @Total is NULL )
end
else if(@Value=3)
begin
(I.RecurringCharge like '%'+cast(@Total as varchar(50))+'%' or @Total is NULL )
end
Remarque:Ce n'est pas le code complet.Tout est défini dans la SP.J'ai Juste écrit le code qui a été nécessaire pour comprendre le problème.
Merci d'avance.
OriginalL'auteur Asp_Newbie | 2012-11-01
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser Instruction de CAS/Expression
Oui, c'est ce qui donne l'erreur au même endroit .je suis déjà en cours d'exécution dans mon premier SP.
incapable de comprendre ce qui est mauvais, près de "=". Btw, Merci.
Nouveau editted le code..Oui..parce que
I.RecurringCharge=@Total
est aussi une expression qui devrait également être évaluée avecCASE WHEN
statement...@Asp_NewbieOriginalL'auteur Vishal Suthar
Fondamentalement, votre état de santé a été
retournée autour,
Quand (A) est vrai, c'est à dire @Valeur est pas 2, [A, B ou C] va devenir VRAI quel que soit B et C résultats. B et C sont en réalité vérifiée uniquement lorsque
@Value = 2
, qui est de l'intention initiale.OriginalL'auteur RichardTheKiwi
Pas sûr du SGBD que vous utilisez, mais si c'est SQL Server, vous pourriez regarder plutôt à l'aide d'un CAS de déclaration
Alors plutôt regarder à l'aide d'une instruction de CAS
OriginalL'auteur Adriaan Stander
OriginalL'auteur Mitesh Vora