SQL SERVER: Vérifier si la variable est nulle et ensuite affecter déclaration pour la Clause where

Je suis en train de réaliser quelque chose comme ci-dessous dans la clause where en sql.

if (@zipCode ==null)
begin
([Portal].[dbo].[Address].Position.Filter(@radiusBuff) = 1)   
end
else if(@zipCode !=null)
begin
([Portal].[dbo].[Address].PostalCode=@zipCode )
end  

J'ai essayé le suivant:

WHERE ((@zipCode IS NOT NULL AND ([Portal].[dbo].[Address].PostalCode=@zipCode)) OR (@zipCode IS NULL AND ([Portal].[dbo].[Address].Position.Filter(@radiusBuff) = 1)))

qui est faux. N'importe qui peut aider dans l'élaboration de l'énoncé exact. Merci!

Alors, pourquoi est-ce mal?, quels sont les résultats que vous attendiez?
[Portail].[dbo].[Adresse].Position.Filtre censé être une fonction?
Votre condition semble être bien...quel est le problème ou la question avez-vous??
Quand je suis manuellement en passant code postal nulle, il n'est pas de retourner un résultat. Mais quand je suis en remplacement de l'ensemble de l'énoncé ([Portail].[dbo].[Adresse].Position.Filtre(@radiusBuff) = 1)) sa fonctionne bien. Je ne sais pas pourquoi ça se passe comme ça. Quand je suis en briser les déclarations et l'exécution de separemment avec les valeurs définies, ils travaillent beaucoup.

OriginalL'auteur Krishh | 2013-04-18