LIKE et NULL dans la clause WHERE dans SQL
J'ai un magasin de la procédure que j'ai prévu de l'utiliser pour la recherche et obtenir toutes les valeurs.
Scénario:
Si le paramètre passé est NULL
il doit retourner toutes les valeurs de la table et si le paramètre passé n'est pas NULL
il doit retourner les valeurs en fonction de la condition qui est à l'.
//Requête:
ALTER procedure [dbo].[usp_GetAllCustomerDetails]
(
@Keyword nvarchar(20) = null
)
As
Begin
Select CustomerId,CustomerName,CustomerTypeName,CustomerCode,CategoryName,CustomerMobile,CustomerEmail,CustomerAddress,CustomerCity,CustomerState,Pincode
from tblCustomerMaster CM
inner join dbo.tblCustomerTypeMaster CTM on CTM.CustomerTypeId = CM.CustomerType
inner join dbo.tblCategoryMaster CCM on CCM.CategoryId= CM.CustomerCategory
where CustomerName like '%'+@Keyword+'%'
Dans la requête ci-dessus, il ne retourne pas de valeurs lorsque j'exécute depuis le NULL
est supposé que string
par SQL
alors, que dois-je écrire dans la where
clause d'obtenir le résultat souhaité?
source d'informationauteur iamCR
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la condition de ce genre dans vous
where
clauseJe veux juste souligner une autre façon de résoudre ce problème. Le problème est que la valeur par défaut pour
@KeyWord
estNULL
. Si vous modifiez la valeur par défaut pour''
le problème disparaît:Non-NULL nom du client serait alors like '%%'.
Vous avez juste besoin d'ajouter
SET @Keyword = coalesce(@Keyword,'')
à votre procédure est comme ceci :