有人可以帮我跟踪sql查询。
当您想要按阶段I过滤时,它应返回阶段I或阶段I / II但不返回阶段II或阶段III的结果。
类似于第二阶段,它应该返回阶段I / II,阶段II或阶段II / III
的结果select Phase from Phases where Phase in (case
when @phase='Phase I' then '''Phase I'',''Phase I/II'''
when @phase='Phase II' then '''Phase I/II'',''Phase II'',''Phase II/III'''
end)
我不想使用动态查询来解决问题。
答案 0 :(得分:3)
布尔逻辑可以解决这个问题:
select Phase
from Phases
where (@phase = 'Phase I' and Phase in ('Phase I', 'Phase I/II'))
or (@phase = 'Phase II' and Phase in ('Phase I/II', 'Phase II', 'Phase II/III'))