Warunkowa klauzula WHERE z instrukcją CASE w Oracle

Jestem zupełnie nowy w świecie Oracle, więc może to być softball. Pracując z raportem SSRS, przechodzę w szeregu stanów do widoku. Twist polega na tym, że użytkownicy mogą również wybrać wybór z listy stanów o nazwie „[Brak wyboru]”…

Jeśli wybiorą opcję Bez wyboru, chcę po prostu zwrócić wszystkie stany domyślnie, w przeciwnym razie zwrócę tylko listę stanów znajdujących się na mojej liście rozdzielonych przecinkami.

To naprawdę wydaje się być łatwe, ale utknąłem. Oto kod, który mam do tej pory (po prostu próbuję dostać próbkę do pracy), ale moje oczy w końcu przeszły próbując go uruchomić.

Czy ktoś mógłby mi dać jakiś kierunek w tej sprawie?

begin
  :stateCode:='MO,FL,TX';
  --:stateCode:='[ No Selection ]';
end;
/

select count(*) as StateCount, :stateCode as SelectedVal
from hcp_state vw
where 
  (case 
      when (:stateCode = '') then (1)
      when (:stateCode != '') then (vw.state_cd in (:stateCode))
      (else 0)
  end)
;

questionAnswers(1)

yourAnswerToTheQuestion