当Parameter为null时,我需要使用like。这是漫长的一天,我需要一双额外的眼睛。
目前我在SSRS中有一个参数,以便我可以搜索一名工作人员,这完全正常。但是我想在Report Builder中添加一个NULL参数(我可以这样做,这是我今天因某些原因无法做到的SQL)。
Where
case
when :P_Lecturer is not null then coalesce(to_char(s_details.person_code), 'No Staff Attached') in (:P_Lecturer)
else coalesce(to_char(s_details.person_code), 'No Staff Attached') like '%%'
end
and [Rest of Conditions]
我收到错误“缺少关键字”。我错过了什么?
有没有更好的方法呢?
答案 0 :(得分:2)
CASE并不适用于你想要做的事情。但OR工作正常。你只需要让你的事情正确
WHERE
(
( :P_Lecturer is not null AND
coalesce(to_char(s_details.person_code), 'No Staff Attached') in (:P_Lecturer)
)
OR
( :P_Lecturer is null AND
coalesce(to_char(s_details.person_code), 'No Staff Attached') like '%%'
)
)
and [Rest of Conditions]