我有一个 SQL 查询,我试图在我的选择中加入空响应的可能性。
最终,这将在 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 设置为'%',我想包括空值,但如果@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
微软 SQL Server 2008 R2。