搜索产品列表时,@SearchType
参数是可选的。如果@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,'') = ''
关于sql - SQL Server:检查WHERE子句的变量是否为Empty或NULL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10284164/