Условное предложение 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) ;