0
我有一個SQL查詢,我試圖在我的選擇中包含null響應的可能性。SQL在Where子句中對空值使用Case
最終,這將在SSRS報告中結束。
該查詢工作正常,但p.ReferralReason中的任何空值將始終返回。我想不會返回空值,如果@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 = '%'
所有的原因,我想包括空值,但我不想包含null值,如果@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。