В настоящее время у меня есть оператор выбора, который изменяется в зависимости от условия:
if @LoadUsage = '|CreateBatch|'
begin
-- Do lookup on ClaimNumber and InterchangeName provided
-- Use @version scalar to filter latest InputAdjustmentVersion
select @ClaimSubmissionNumber = CS.ClaimSubmissionNumber
from ClaimSubmissions CS inner join Claims C on C.ClaimID = CS.ClaimID
inner join InterchangeInfo I on CS.InterchangeId = I.InterchangeId
where I.InterchangeName = @InterchangeName
and C.ClaimNumber = @ClaimNumber
and CS.SubmissionStatus in (select SubmissionStatus from @AllowedSubmissionStatus)
and Cs.InputAdjustmentVersion = @Version
end
else
begin
-- Do lookup on ClaimNumber and InterchangeName provided
select @ClaimSubmissionNumber = CS.ClaimSubmissionNumber
from ClaimSubmissions CS inner join Claims C on C.ClaimID = CS.ClaimID
inner join InterchangeInfo I on CS.InterchangeId = I.InterchangeId
where I.InterchangeName = @InterchangeName
and C.ClaimNumber = @ClaimNumber
and CS.SubmissionStatus in (select SubmissionStatus from @AllowedSubmissionStatus)
end
Если скаляр @LoadUsage
равен '|CREATEBATCH|'
, я добавляю еще одну проверку (and Cs.InputAdjustmentVersion = @Version
) к предложению where. Есть ли способ сделать это с помощью оператора case в предложении where вместо двух разных операторов select?