Условное предложение WHERE с оператором CASE в Oracle

Я новичок в мире Oracle, так что это может быть софтбол. При работе с отчетом SSRS я передаю строку состояний в представление. Суть в том, что пользователи могут также выбирать выбор из списка состояний под названием «[Нет выбора]» ... (эта часть не была сделана, и я застрял в реализации вещей таким образом)

Если они выбирают опцию «Нет выбора», то я просто хочу вернуть все состояния по умолчанию, в противном случае возвращает только список состояний, которые находятся в моем списке через запятую.

Это действительно кажется, что это должно быть легко, но я застрял. Вот код, который у меня есть до сих пор (просто пытаюсь заставить пример работать), но мои глаза наконец-то пересеклись, пытаясь заставить его работать.

Кто-нибудь может дать мне какое-то руководство по этому вопросу, пожалуйста?

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)
;

Ответы на вопрос(1)

Ваш ответ на вопрос