我有一个存储过程参数organisationID
,用于通过以下方式过滤我的查询:
where pr.ProfileID = @profileID
and oi.OrganisationID = @organisationID
我想合并它,以便如果传入 null 则查询不会被它过滤。
我有一个存储过程参数organisationID
,用于通过以下方式过滤我的查询:
where pr.ProfileID = @profileID
and oi.OrganisationID = @organisationID
我想合并它,以便如果传入 null 则查询不会被它过滤。
执行此操作的典型方法是:
where (@profileID is null or pr.ProfileID = @profileID) and
(@organisationID is null or oi.OrganisationID = @organisationID)
where pr.ProfileID = @profileID
and oi.OrganisationID = isnull(@organisationID, oi.OrganisationID)
这假设您只过滤一个值,逻辑可以应用于两个参数。
尝试:
where pr.ProfileID = COALESCE(@profileID, pr.ProfileID)
and oi.OrganisationID = COALESCE(@organisationID,oi.OrganisationID)