我有一个存储过程,我计划将其用于搜索并获取所有值。
场景:
如果传递的参数是NULL
它应该返回表的所有值,如果传递的参数不是NULL
它应该根据LIKE中的条件返回值。
//询问:
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+'%'
在上面的查询中,当我执行时它不返回任何值,因为NULL
假定为string
by SQL
,那么我应该在where
子句中写什么以获得所需的输出?