搜索产品列表时,该@SearchType参数是可选的。如果@SearchType为空NULL,则应返回所有产品而不使用该WHERE子句。否则,如果它通过了Equipment,它将改用它。
@SearchType
NULL
WHERE
Equipment
ALTER PROCEDURE [dbo].[psProducts] (@SearchType varchar(50)) AS BEGIN SET NOCOUNT ON; SELECT P.[ProductId], P.[ProductName], P.[ProductPrice], P.[Type] FROM [Product] P -- if @Searchtype is not null then use the where clause WHERE p.[Type] = @SearchType END
只需使用
如果@searchType为null表示“返回整个表”,则使用
WHERE p.[Type] = @SearchType OR @SearchType is NULL
如果@searchType为空字符串,则表示“返回整个表”,然后使用
WHERE p.[Type] = @SearchType OR @SearchType = ''
如果@searchType为null或空字符串表示“返回整个表”,则使用
WHERE p.[Type] = @SearchType OR Coalesce(@SearchType,'') = ''