我想创建一个存储过程,它在过程的 WHERE 部分有一个可选参数。我的 C# 代码可以为此过程传入 null 或有效的产品 ID。这里是:
declare @ProductID int
set @ProductID = null
select
*
from
Products
where
Name like '%Hasbro%'
if @ProductID is not null
begin
and ProductID = @ProductID
end
此代码不起作用。如果产品 ID 为空,我希望它只查找名称为“孩之宝”的产品。如果产品 ID 不为空,我希望它查找名称为“孩之宝”的产品以及匹配的产品 ID。
谢谢!
更新:
这是工作代码。谢谢大家帮我弄到这个!
declare @ProductID int
set @ProductID = null
select
*
from
Products
where
Name like '%Hasbro%'
and (( @ProductID is null ) or ( @ProductID is not null and ProductID = @ProductID ))
最佳答案
这也应该有效...
select
*
from
Products
where
Name like '%Hasbro%' and
(
( @ProductID is null ) or
( @ProductID is not null and ProductID = @ProductID )
)
关于c# - 如何在 SQL Server 中包含可选的 Null 参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6512996/