Ada*_*olt 2 sql t-sql sql-server
我现在有一些看起来像这样的SQL代码.
insert into @SortedProducts (peid)
select pd.ProductEntryId
from @ProductFilters FILT
INNER JOIN J_ProductDetails pd ON FILT.ProductEntryId = pd.ProductEntryId
WHERE pd.Active = 'True'
and pd.IsRangeOfProducts = CASE WHEN @ClearanceFeatureApplied = 1 then 0 else 1 END
Run Code Online (Sandbox Code Playgroud)
但是,在最后一行,我只想在@ClearanceFeatureApplied = 1时应用where子句
如果@ClearanceFeatureApplied = 0那么我不应该有这个where子句.pd.IsRangeOfProducts也有点.
任何建议将不胜感激.
谢谢!
只需使用布尔逻辑:
insert into @SortedProducts (peid)
select pd.ProductEntryId
from @ProductFilters FILT join
J_ProductDetails pd
on FILT.ProductEntryId = pd.ProductEntryId
where pd.Active = 'True' and
(@ClearanceFeatureApplied <> 1 or pd.IsRangeOfProducts = 0) ;
Run Code Online (Sandbox Code Playgroud)