У меня есть запрос SQL, который я пытаюсь включить в свой выбор с возможностью получения нулевых ответов.
В конечном итоге это будет отчет SSRS.
Этот запрос работает нормально, но всегда будут возвращаться любые нулевые значения в p.ReferralReason. Я бы хотел, чтобы значения NULL не возвращались, если значение @Reason отличается от "%":
DECLARE @Reason varchar(100)
SET @Reason = 'Lost To Care'
SELECT p.Person_ID, P.Person_Name, p.ReferralReason
FROM VIEW_Patient p
WHERE
p.ReferralReason like '%' + @Reason + '%'
Я хотел бы включить все причины в @Reason = '%'
. Если для @Reason установлено значение «%», я хотел бы включить нулевые значения, но я не хочу включать нулевые значения, если для @Reason установлено что-либо еще.
Это то, что я пробовал, но не работает:
DECLARE @Reason varchar(100)
SET @Reason = '%'
SELECT p.Person_ID, P.Person_Name, p.ReferralReason
FROM VIEW_Patient p
WHERE
case
when @Reason = '%' then (p.ReferralReason like '%' + @Reason + '%' or p.ReferralReason is null)
else p.ReferralReason like '%' + @Reason + '%'
end
MS SQL Server 2008 R2.