Я совершенно новый для мира Oracle, так что это может быть софтбол. При работе с SSRS-сообщением я передаю строку состояний в представление. Твист состоит в том, что пользователи могут также выбрать выделение из списка состояний под названием «[No Selection]» ... (эта часть не выполнялась, и я застрял в реализации вещей таким образом)Условное предложение WHERE с оператором CASE в Oracle
Если они выбирают No Selection, тогда я просто хочу вернуть все состояния по умолчанию, иначе верните только список состояний, которые находятся в моем списке, разделенном запятыми.
Это действительно похоже, что это должно быть легко, но я застрял. Вот код, который я до сих пор (просто пытаюсь заставить образец работать), но мои глаза, наконец, скрестились, пытаясь добиться этого.
Может ли кто-нибудь дать мне какое-то направление по этому поводу, пожалуйста?
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) ;
'(еще 0) 'не должны иметь скобок , – zygimantus
@zygimantus. , , Спасибо. Очень любопытно, что нет истории редактирования, потому что формат кода сильно отличался от моего обычного стиля отступа. Все исправлено. –