Если @reasonID = 1, мне нужно выбрать только те политики, у которых причина ID = 211
Если @reasonID = 2, мне нужно выбрать только те политики, у которых есть причина <<211 </p>
Если @reasonID = NULL Мне нужно выбрать все политики, включая NULL
. В приведенном ниже примере это работает для @reasonID = 1 и @reasonID = 2.
Но как я могу настроить выражение WHERE длявыбрать все строки, когда @reasonID = NULL
?
declare @TempTable table (PolicyNumber varchar(50), reasonID int)
insert into @TempTable values ('Pol1', 5),
('Pol2', NULL),
('Pol3', 211),
('Pol4', 8),
('Pol5', 211),
('Pol6', NULL)
--input @reasonID parameter
declare @reasonID int = 2
select PolicyNumber,reasonID
from @TempTable
where
(case when reasonID = 211 then 1 else 2 end = @reasonID) --works fine
OR (@reasonID = NULL) --does not work