0

誰かが次のSQLクエリを手伝ってくれますか.

フェーズ I でフィルタリングする場合、フェーズ I またはフェーズ I/II で結果を返しますが、フェーズ II またはフェーズ III では返しません。

フェーズ II についても同様に、フェーズ 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)

問題を解決するために動的クエリを使用したくありません。

4

1 に答える 1

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'))
于 2013-10-16T13:17:39.327 に答える