我有一个存储过程,其中我有一个变量,可以为null或为ID设置。 我希望只有在变量不为null时才有一个where子句。
这是我的代码:
DECLARE @managerID int;
SET @managerID = null;
SET @managerID = 6 //This value will come by parameter through stored procude
Select * from Provision
where manager = @managerID //This should only be here, when the managerID is not null
答案 0 :(得分:2)
你可以这样做:
where manager = @managerID or @ManagerId is null
但是,如果从应用程序执行此操作,则可能需要根据条件构造where
子句。数据库优化器在or
子句中很难使用from
,因此最好只有一个条件列表and
连接。
答案 1 :(得分:0)
@managerID
如果为null则返回true,它将返回所有行
DECLARE @managerID int;
SET @managerID = null;
SET @managerID = 6
Select * from Provision
where manager = @managerID OR @managerID is null